discourse/config/locales/server.en.yml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

5180 lines
303 KiB
YAML
Raw Normal View History

2013-02-06 03:16:51 +08:00
en:
dates:
2020-10-01 02:11:26 +08:00
# Use Moment.js format string: https://momentjs.com/docs/#/displaying/format/
short_date_no_year: "D MMM"
2018-10-10 19:11:58 +08:00
# Use Moment.js format string: https://momentjs.com/docs/#/displaying/format/
short_date: "D MMM, YYYY"
2018-10-10 19:11:58 +08:00
# Use Moment.js format string: https://momentjs.com/docs/#/displaying/format/
long_date: "MMMM D, YYYY h:mma"
datetime_formats: &datetime_formats
formats:
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
short: "%m-%d-%Y"
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
short_no_year: "%B %-d"
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
date_only: "%B %-d, %Y"
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
long: "%B %-d, %Y, %l:%M%P"
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
no_day: "%B %Y"
# Format directives: https://ruby-doc.org/core/Time.html#method-i-strftime
calendar_ics: "%Y%m%dT%H%M%SZ"
date:
# Do not remove the brackets and commas and do not translate the first month name. It should be "null".
month_names:
[
~,
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December,
]
<<: *datetime_formats
time:
<<: *datetime_formats
am: "am"
pm: "pm"
2013-02-06 03:16:51 +08:00
title: "Discourse"
topics: "Topics"
2013-04-18 17:24:47 +08:00
posts: "posts"
views: "views"
loading: "Loading"
powered_by_html: 'Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled'
sign_up: "Sign Up"
log_in: "Log In"
submit: "Submit"
purge_reason: "Automatically deleted as abandoned, deactivated account"
disable_remote_images_download_reason: "Remote images download was disabled because there wasn't enough disk space available."
anonymous: "Anonymous"
remove_posts_deleted_by_author: "Deleted by author"
2018-03-19 23:02:07 +08:00
redirect_warning: "We were unable to verify that the link you selected was actually posted to the forum. If you wish to proceed anyway, select the link below."
on_another_topic: "On another topic"
inline_oneboxer:
topic_page_title_post_number: "#%{post_number}"
topic_page_title_post_number_by_user: "#%{post_number} by %{username}"
themes:
bad_color_scheme: "Can not update theme, invalid color palette"
other_error: "Something went wrong updating theme"
ember_selector_error: "Sorry using #ember or .ember-view CSS selectors is not permitted, because these names are dynamically generated at runtime and will change over time, eventually resulting in broken CSS. Try a different selector."
compile_error:
unrecognized_extension: "Unrecognized file extension: %{extension}"
import_error:
generic: An error occurred while importing that theme
2020-05-23 11:25:35 +08:00
about_json: "Import Error: about.json does not exist, or is invalid. Are you sure this is a Discourse Theme?"
about_json_values: "about.json contains invalid values: %{errors}"
modifier_values: "about.json modifiers contain invalid values: %{errors}"
git: "Error cloning git repository, access is denied or repository is not found"
git_ref_not_found: "Unable to checkout git reference: %{ref}"
unpack_failed: "Failed to unpack file"
file_too_big: "The uncompressed file is too big."
unknown_file_type: "The file you uploaded does not appear to be a valid Discourse theme."
not_allowed_theme: "`%{repo}` is not in the list of allowed themes (check `allowed_theme_repos` global setting)."
errors:
component_no_user_selectable: "Theme components can't be user-selectable"
component_no_default: "Theme components can't be default theme"
component_no_color_scheme: "Theme components can't have color palettes"
no_multilevels_components: "Themes with child themes can't be child themes themselves"
optimized_link: Optimized image links are ephemeral and should not be included in theme source code.
settings_errors:
invalid_yaml: "Provided YAML is invalid."
data_type_not_a_number: "Setting `%{name}` type is unsupported. Supported types are `integer`, `bool`, `list`, `enum` and `upload`"
name_too_long: "There is a setting with a too long name. Maximum length is 255"
default_value_missing: "Setting `%{name}` has no default value"
default_not_match_type: "Setting `%{name}` default value's type doesn't match with the setting type."
default_out_range: "Setting `%{name}` default value isn't in the specified range."
enum_value_not_valid: "Selected value isn't one of the enum choices."
number_value_not_valid: "New value isn't within the allowed range."
number_value_not_valid_min_max: "It must be between %{min} and %{max}."
number_value_not_valid_min: "It must be larger than or equal to %{min}."
number_value_not_valid_max: "It must be smaller than or equal to %{max}."
string_value_not_valid: "New value length isn't within the allowed range."
2019-02-18 23:51:57 +08:00
string_value_not_valid_min_max: "It must be between %{min} and %{max} characters long."
string_value_not_valid_min: "It must be at least %{min} characters long."
string_value_not_valid_max: "It must be at most %{max} characters long."
locale_errors:
top_level_locale: "The top level key in a locale file must match the locale name"
invalid_yaml: "Translation YAML invalid"
emails:
incoming:
default_subject: "This topic needs a title"
show_trimmed_content: "Show trimmed content"
maximum_staged_user_per_email_reached: "Reached maximum number of staged users created per email."
no_subject: "(no subject)"
no_body: "(no body)"
Fix i18n issues reported on Crowdin (#13191) * Pluralize `js.topics.bulk.dismiss_new_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57320 * Pluralize `js.topics.bulk.dismiss_read_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57316 * Pluralize `js.topics.bulk.dismiss_button_with_selected` * Replaces concatenated string used by `js.topic.suggest_create_topic` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#41834 * Less confusing `admin_js.admin.watched_words.test.modal_title` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-sv#44992 * Delete unused `backup.location.*` keys This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#46330 * Replace "reviewable" with "reviewable items" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#56952 * Remove "ago" from `emails.incoming.missing_attachment` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-sv#46038 * Remove "/Posts" from `js.keyboard_shortcuts_help.application.dismiss_new_posts` Because the shortcut doesn't do anything to posts anymore. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-de#43180 * Pluralize `user.cannot_delete_has_posts` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-he#57490
2021-06-22 17:29:35 +08:00
missing_attachment: "(Attachment %{filename} is missing)"
continuing_old_discussion:
one: "Continuing the discussion from [%{title}](%{url}), because it was created more than %{count} day ago."
other: "Continuing the discussion from [%{title}](%{url}), because it was created more than %{count} days ago."
errors:
empty_email_error: "Happens when the raw mail we received was blank."
no_message_id_error: "Happens when the mail has no 'Message-Id' header."
auto_generated_email_error: "Happens when the 'precedence' header is set to: list, junk, bulk or auto_reply, or when any other header contains: auto-submitted, auto-replied or auto-generated."
no_body_detected_error: "Happens when we couldn't extract a body and there were no attachments."
no_sender_detected_error: "Happens when we couldn't find a valid email address in the From header."
from_reply_by_address_error: "Happens when the From header matches the reply by email address."
inactive_user_error: "Happens when the sender is not active."
2017-11-11 01:18:08 +08:00
silenced_user_error: "Happens when the sender has been silenced."
bad_destination_address: "Happens when none of the email addresses in To/Cc fields matched a configured incoming email address."
strangers_not_allowed_error: "Happens when a user tried to create a new topic in a category they're not a member of."
2016-03-01 19:06:27 +08:00
insufficient_trust_level_error: "Happens when a user tried to create a new topic in a category they don't have the required trust level for."
reply_user_not_matching_error: "Happens when a reply came in from a different email address the notification was sent to."
topic_not_found_error: "Happens when a reply came in but the related topic has been deleted."
topic_closed_error: "Happens when a reply came in but the related topic has been closed."
bounced_email_error: "Email is a bounced email report."
screened_email_error: "Happens when the sender's email address was already screened."
unsubscribe_not_allowed: "Happens when unsubscribing via email is not allowed for this user."
email_not_allowed: "Happens when the email address is not on the allowlist or is on the blocklist."
unrecognized_error: "Unrecognized Error"
FEATURE: Allow email image embed with secure media (#10563) This PR introduces a few important changes to secure media redaction in emails. First of all, two new site settings have been introduced: * `secure_media_allow_embed_images_in_emails`: If enabled we will embed secure images in emails instead of redacting them. * `secure_media_max_email_embed_image_size_kb`: The cap to the size of the secure image we will embed, defaulting to 1mb, so the email does not become too big. Max is 10mb. Works in tandem with `email_total_attachment_size_limit_kb`. `Email::Sender` will now attach images to the email based on these settings. The sender will also call `inline_secure_images` in `Email::Styles` after secure media is redacted and attachments are added to replace redaction messages with attached images. I went with attachment and `cid` URLs because base64 image support is _still_ flaky in email clients. All redaction of secure media is now handled in `Email::Styles` and calls out to `PrettyText.strip_secure_media` to do the actual stripping and replacing with placeholders. `app/mailers/group_smtp_mailer.rb` and `app/mailers/user_notifications.rb` no longer do any stripping because they are earlier in the pipeline than `Email::Styles`. Finally the redaction notice has been restyled and includes a link to the media that the user can click, which will show it to them if they have the necessary permissions. ![image](https://user-images.githubusercontent.com/920448/92341012-b9a2c380-f0ff-11ea-860e-b376b4528357.png)
2020-09-10 07:50:16 +08:00
secure_media_placeholder: "Redacted: This site has secure media enabled, visit the topic or click View Media to see the attached media."
view_redacted_media: "View Media"
2015-02-06 22:46:24 +08:00
errors: &errors
format: ! "%{attribute} %{message}"
format_with_full_message: "<b>%{attribute}</b>: %{message}"
messages:
too_long_validation: "is limited to %{max} characters; you entered %{length}."
invalid_boolean: "Invalid boolean."
2015-02-10 02:47:05 +08:00
taken: "has already been taken"
2015-02-06 22:46:24 +08:00
accepted: must be accepted
blank: can't be blank
present: must be blank
confirmation: ! "doesn't match %{attribute}"
empty: can't be empty
equal_to: must be equal to %{count}
even: must be even
exclusion: is reserved
greater_than: must be greater than %{count}
greater_than_or_equal_to: must be greater than or equal to %{count}
has_already_been_used: "has already been used"
2015-02-06 22:46:24 +08:00
inclusion: is not included in the list
invalid: is invalid
is_invalid: "seems unclear, is it a complete sentence?"
is_invalid_meaningful: "seems unclear, most of the words contain the same letters over and over?"
is_invalid_unpretentious: "seems unclear, one or more words is very long?"
is_invalid_quiet: "seems unclear, did you mean to enter it in ALL CAPS?"
invalid_timezone: "'%{tz}' is not a valid timezone"
contains_censored_words: "contains the following censored words: %{censored_words}"
2015-02-06 22:46:24 +08:00
less_than: must be less than %{count}
less_than_or_equal_to: must be less than or equal to %{count}
not_a_number: is not a number
not_an_integer: must be an integer
odd: must be odd
record_invalid: ! "Validation failed: %{errors}"
max_emojis: "can't have more than %{max_emojis_count} emoji"
emojis_disabled: "can't have emoji"
ip_address_already_screened: "is already included in an existing rule"
2015-02-06 22:46:24 +08:00
restrict_dependent_destroy:
one: "Cannot delete record because a dependent %{record} exists"
other: "Cannot delete record because dependent %{record} exist"
2015-02-06 22:46:24 +08:00
too_long:
one: is too long (maximum is %{count} character)
2015-02-06 22:46:24 +08:00
other: is too long (maximum is %{count} characters)
too_short:
one: is too short (minimum is %{count} character)
2015-02-06 22:46:24 +08:00
other: is too short (minimum is %{count} characters)
wrong_length:
one: is the wrong length (should be %{count} character)
2015-02-06 22:46:24 +08:00
other: is the wrong length (should be %{count} characters)
other_than: "must be other than %{count}"
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
auth_overrides_username: "Username needs to be updated on authentication provider side, since `auth_overrides_username` setting is enabled."
2015-02-06 22:46:24 +08:00
template:
body: ! "There were problems with the following fields:"
2015-02-06 22:46:24 +08:00
header:
one: "%{count} error prohibited this %{model} from being saved"
other: ! "%{count} errors prohibited this %{model} from being saved"
embed:
load_from_remote: "There was an error loading that post."
site_settings:
invalid_category_id: "You specified a category that does not exist"
invalid_choice:
one: "You specified the invalid choice %{name}"
other: "You specified the invalid choices %{name}"
default_categories_already_selected: "You cannot select a category used in another list."
default_tags_already_selected: "You cannot select a tag used in another list."
s3_upload_bucket_is_required: "You cannot enable uploads to S3 unless you've provided the 's3_upload_bucket'."
enable_s3_uploads_is_required: "You cannot enable usage of the S3 inventory unless you've enabled S3 uploads."
page_publishing_requirements: "Page publishing cannot be enabled if secure media is enabled."
s3_backup_requires_s3_settings: "You cannot use S3 as backup location unless you've provided the '%{setting_name}'."
s3_bucket_reused: "You cannot use the same bucket for 's3_upload_bucket' and 's3_backup_bucket'. Choose a different bucket or use a different path for each bucket."
secure_media_requirements: "S3 uploads must be enabled before enabling secure media."
share_quote_facebook_requirements: "You must set a Facebook app id to enable quote sharing for Facebook."
second_factor_cannot_enforce_with_socials: "You cannot enforce 2FA with social logins enabled. You must first disable login via: %{auth_provider_names}"
second_factor_cannot_be_enforced_with_disabled_local_login: "You cannot enforce 2FA if local logins are disabled."
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
second_factor_cannot_be_enforced_with_discourse_connect_enabled: "You cannot enforce 2FA if DiscourseConnect is enabled."
local_login_cannot_be_disabled_if_second_factor_enforced: "You cannot disable local login if 2FA is enforced. Disable enforced 2FA before disabling local logins."
cannot_enable_s3_uploads_when_s3_enabled_globally: "You cannot enable S3 uploads because S3 uploads are already globally enabled, and enabling this site-level could cause critical issues with uploads"
cors_origins_should_not_have_trailing_slash: "You should not add the trailing slash (/) to CORS origins."
FEATURE: Replace `Crawl-delay` directive with proper rate limiting (#15131) We have a couple of site setting, `slow_down_crawler_user_agents` and `slow_down_crawler_rate`, that are meant to allow site owners to signal to specific crawlers that they're crawling the site too aggressively and that they should slow down. When a crawler is added to the `slow_down_crawler_user_agents` setting, Discourse currently adds a `Crawl-delay` directive for that crawler in `/robots.txt`. Unfortunately, many crawlers don't support the `Crawl-delay` directive in `/robots.txt` which leaves the site owners no options if a crawler is crawling the site too aggressively. This PR replaces the `Crawl-delay` directive with proper rate limiting for crawlers added to the `slow_down_crawler_user_agents` list. On every request made by a non-logged in user, Discourse will check the User Agent string and if it contains one of the values of the `slow_down_crawler_user_agents` list, Discourse will only allow 1 request every N seconds for that User Agent (N is the value of the `slow_down_crawler_rate` setting) and the rest of requests made within the same interval will get a 429 response. The `slow_down_crawler_user_agents` setting becomes quite dangerous with this PR since it could rate limit lots if not all of anonymous traffic if the setting is not used appropriately. So to protect against this scenario, we've added a couple of new validations to the setting when it's changed: 1) each value added to setting must 3 characters or longer 2) each value cannot be a substring of tokens found in popular browser User Agent. The current list of prohibited values is: apple, windows, linux, ubuntu, gecko, firefox, chrome, safari, applewebkit, webkit, mozilla, macintosh, khtml, intel, osx, os x, iphone, ipad and mac.
2021-11-30 17:55:25 +08:00
slow_down_crawler_user_agent_must_be_at_least_3_characters: "User agents must be at least 3 characters long to avoid incorrectly rate limiting human users."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "You cannot add any of the following values to the setting: %{values}."
2017-12-22 10:37:14 +08:00
conflicting_google_user_id: 'The Google Account ID for this account has changed; staff intervention is required for security reasons. Please contact staff and point them to <br><a href="https://meta.discourse.org/t/76575">https://meta.discourse.org/t/76575</a>'
onebox:
invalid_address: "Sorry, we were unable to generate a preview for this web page, because the server '%{hostname}' could not be found. Instead of a preview, only a link will appear in your post. :cry:"
error_response: "Sorry, we were unable to generate a preview for this web page, because the web server returned an error code of %{status_code}. Instead of a preview, only a link will appear in your post. :cry:"
missing_data:
one: "Sorry, we were unable to generate a preview for this web page, because the following oEmbed / OpenGraph tag could not be found: %{missing_attributes}"
other: "Sorry, we were unable to generate a preview for this web page, because the following oEmbed / OpenGraph tags could not be found: %{missing_attributes}"
word_connector:
# Connects words with a comma. Example: "foo, bar"
comma: ", "
2015-02-06 22:46:24 +08:00
activemodel:
errors:
<<: *errors
invite:
2020-10-01 01:46:27 +08:00
expired: "Your invite token has expired. Please <a href='%{base_url}/about'>contact staff</a>."
2019-07-19 19:09:44 +08:00
not_found: "Your invite token is invalid. Please <a href='%{base_url}/about'>contact staff</a>."
not_found_json: "Your invite token is invalid. Please contact staff."
FEATURE: Allow using invites when DiscourseConnect SSO is enabled (#12419) This PR allows invitations to be used when the DiscourseConnect SSO is enabled for a site (`enable_discourse_connect`) and local logins are disabled. Previously invites could not be accepted with SSO enabled simply because we did not have the code paths to handle that logic. The invitation methods that are supported include: * Inviting people to groups via email address * Inviting people to topics via email address * Using invitation links generated by the Invite Users UI in the /my/invited/pending route The flow works like this: 1. User visits an invite URL 2. The normal invitation validations (redemptions/expiry) happen at that point 3. We store the invite key in a secure session 4. The user clicks "Accept Invitation and Continue" (see below) 5. The user is redirected to /session/sso then to the SSO provider URL then back to /session/sso_login 6. We retrieve the invite based on the invite key in secure session. We revalidate the invitation. We show an error to the user if it is not valid. An additional check here for invites with an email specified is to check the SSO email matches the invite email 7. If the invite is OK we create the user via the normal SSO methods 8. We redeem the invite and activate the user. We clear the invite key in secure session. 9. If the invite had a topic we redirect the user there, otherwise we redirect to / Note that we decided for SSO-based invites the `must_approve_users` site setting is ignored, because the invite is a form of pre-approval, and because regular non-staff users cannot send out email invites or generally invite to the forum in this case. Also deletes some group invite checks as per https://github.com/discourse/discourse/pull/12353
2021-03-19 08:20:10 +08:00
not_matching_email: "Your email address and the email address associated with the invite token do not match. Please contact staff."
not_found_template: |
<p>Your invite to <a href="%{base_url}">%{site_name}</a> has already been redeemed.</p>
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
<p>If you remember your password you can <a href="%{base_url}/login">Log In</a>.</p>
<p>Otherwise please <a href="%{base_url}/password-reset">Reset Password</a>.</p>
not_found_template_link: |
<p>This invitation to <a href="%{base_url}">%{site_name}</a> can no longer be redeemed. Please ask the person who invited you to send you a new invitation.</p>
user_exists: "There's no need to invite <b>%{email}</b>, they <a href='%{base_path}/u/%{username}/summary'>already have an account!</a>"
invite_exists: "You already invited <b>%{email}</b>."
invalid_email: "%{email} isn't a valid email address."
rate_limit:
one: "You have already sent %{count} invite in the last 24 hours, please wait %{time_left} before trying again."
other: "You have already sent %{count} invites in the last 24 hours, please wait %{time_left} before trying again."
confirm_email: "<p>Youre almost done! We sent an activation mail to your email address. Please follow the instructions in the mail to activate your account.</p><p>If it doesnt arrive, check your spam folder.</p>"
cant_invite_to_group: "You are not allowed to invite users to specified group(s). Make sure you are owner of the group(s) you are trying to invite to."
disabled_errors:
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
discourse_connect_enabled: "Invites are disabled because DiscourseConnect is enabled."
invalid_access: "You are not permitted to view the requested resource."
requires_groups: "Invite was not saved because the specified topic is inaccessible. Add one of the following groups: %{groups}."
domain_not_allowed: "Your email cannot be used to redeem this invite."
2014-05-28 04:14:37 +08:00
bulk_invite:
2016-12-05 00:06:35 +08:00
file_should_be_csv: "The uploaded file should be of csv format."
2019-06-12 17:05:21 +08:00
max_rows: "First %{max_bulk_invites} invites has been sent. Try splitting the file in smaller parts."
2016-12-05 00:06:35 +08:00
error: "There was an error uploading that file. Please try again later."
2014-05-28 04:14:37 +08:00
invite_link:
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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:
failed_to_invite: "The user cannot be invited into this topic without a group membership in either one of the following groups: %{group_names}."
user_exists: "Sorry, that user has already been invited. You may only invite a user to a topic once."
muted_topic: "Sorry, that user muted this topic."
receiver_does_not_allow_pm: "Sorry, that user does not allow you to send them private messages."
sender_does_not_allow_pm: "Sorry, you do not allow that user to send you private messages."
user_cannot_see_topic: "%{username} cannot see the topic."
2014-02-13 12:39:00 +08:00
backup:
operation_already_running: "An operation is currently running. Can't start a new job right now."
backup_file_should_be_tar_gz: "The backup file should be a .tar.gz archive."
not_enough_space_on_disk: "There is not enough space on disk to upload this backup."
invalid_filename: "The backup filename contains invalid characters. Valid characters are a-z 0-9 . - _."
file_exists: "The file you are trying to upload already exists."
2013-04-08 00:14:50 +08:00
invalid_params: "You supplied invalid parameters to the request: %{message}"
not_logged_in: "You need to be logged in to do that."
not_found: "The requested URL or resource could not be found."
invalid_access: "You are not permitted to view the requested resource."
authenticator_not_found: "Authentication method does not exist, or has been disabled."
authenticator_no_connect: "This authentication provider does not allow connection to an existing forum account."
invalid_api_credentials: "You are not permitted to view the requested resource. The API username or key is invalid."
provider_not_enabled: "You are not permitted to view the requested resource. The authentication provider is not enabled."
provider_not_found: "You are not permitted to view the requested resource. The authentication provider does not exist."
read_only_mode_enabled: "The site is in read only mode. Interactions are disabled."
invalid_grant_badge_reason_link: "External or invalid discourse link is not allowed in badge reason"
2019-04-02 20:16:45 +08:00
email_template_cant_be_modified: "This email template can't be modified"
invalid_whisper_access: "Either whispers are not enabled or you do not have access to create whisper posts"
not_in_group:
title_topic: "You need to request membership to the '%{group}' group to see this topic."
title_category: "You need to request membership to the '%{group}' group to see this category."
request_membership: "Request Membership"
join_group: "Join Group"
deleted_topic: "Oops! This topic has been deleted and is no longer available."
delete_topic_failed: "There was an error deleting that topic. Please contact the site's administrator."
reading_time: "Reading time"
likes: "Likes"
too_many_replies:
one: "We're sorry, but new users are temporarily limited to %{count} reply in the same topic."
other: "We're sorry, but new users are temporarily limited to %{count} replies in the same topic."
max_consecutive_replies:
2018-12-05 19:18:11 +08:00
one: "No consecutive replies are allowed. Please edit your previous reply, or wait for someone to reply to you."
other: "No more than %{count} consecutive replies are allowed. Please edit your previous reply, or wait for someone to reply to you."
embed:
2014-05-10 14:00:49 +08:00
start_discussion: "Start Discussion"
continue: "Continue Discussion"
error: "Error Embedding"
referer: "Referer:"
error_topics: "The `embed topics list` site setting was not enabled"
mismatch: "The referer was either not sent, or did not match any of the following hosts:"
no_hosts: "No hosts were set up for embedding."
configure: "Configure Embedding"
more_replies:
one: "%{count} more reply"
other: "%{count} more replies"
loading: "Loading Discussion..."
permalink: "Permalink"
2014-04-08 15:11:54 +08:00
imported_from: "This is a companion discussion topic for the original entry at %{link}"
2014-05-10 14:00:49 +08:00
in_reply_to: "▶ %{username}"
2014-01-04 01:52:24 +08:00
replies:
one: "%{count} reply"
2014-01-04 01:52:24 +08:00
other: "%{count} replies"
likes:
one: "%{count} like"
other: "%{count} likes"
last_reply: "Last reply"
created: "Created"
new_topic: "Create new topic"
no_mentions_allowed: "Sorry, you can't mention other users."
too_many_mentions:
one: "Sorry, you can only mention one other user in a post."
other: "Sorry, you can only mention %{count} users in a post."
no_mentions_allowed_newuser: "Sorry, new users can't mention other users."
too_many_mentions_newuser:
one: "Sorry, new users can only mention one other user in a post."
other: "Sorry, new users can only mention %{count} users in a post."
no_embedded_media_allowed_trust: "Sorry, you can't embed media items in a post."
no_embedded_media_allowed: "Sorry, new users can't embed media items in posts."
too_many_embedded_media:
one: "Sorry, new users can only put one embedded media item in a post."
other: "Sorry, new users can only put %{count} embedded media items in a post."
no_attachments_allowed: "Sorry, new users can't put attachments in posts."
2013-07-22 08:39:17 +08:00
too_many_attachments:
one: "Sorry, new users can only put one attachment in a post."
other: "Sorry, new users can only put %{count} attachments in a post."
no_links_allowed: "Sorry, new users can't put links in posts."
links_require_trust: "Sorry, you can't include links in your posts."
too_many_links:
one: "Sorry, new users can only put one link in a post."
other: "Sorry, new users can only put %{count} links in a post."
contains_blocked_word: "Sorry, you can't post the word '%{word}'; it's not allowed."
contains_blocked_words: "Sorry, you can't post that. Not allowed: %{words}."
spamming_host: "Sorry you cannot post a link to that host."
user_is_suspended: "Suspended users are not allowed to post."
topic_not_found: "Something has gone wrong. Perhaps this topic was closed or deleted while you were looking at it?"
not_accepting_pms: "Sorry, %{username} is not accepting messages at the moment."
max_pm_recipients: "Sorry, you can send a message to maximum %{recipients_limit} recipients."
pm_reached_recipients_limit: "Sorry, you can't have more than %{recipients_limit} recipients in a message."
removed_direct_reply_full_quotes: "Automatically removed quote of whole previous post."
watched_words_auto_tag: "Automatically tagged topic"
secure_upload_not_allowed_in_public_topic: "Sorry, the following secure upload(s) cannot be used in a public topic: %{upload_filenames}."
create_pm_on_existing_topic: "Sorry, you can't create a PM on an existing topic."
slow_mode_enabled: "This topic is in slow mode."
2013-02-06 03:16:51 +08:00
just_posted_that: "is too similar to what you recently posted"
invalid_characters: "contains invalid characters"
is_invalid: "seems unclear, is it a complete sentence?"
next_page: "next page →"
2014-02-26 01:15:20 +08:00
prev_page: "← previous page"
page_num: "Page %{num}"
home_title: "Home"
topics_in_category: "Topics in the '%{category}' category"
rss_posts_in_topic: "RSS feed of '%{topic}'"
rss_topics_in_category: "RSS feed of topics in the '%{category}' category"
rss_num_posts:
one: "%{count} post"
other: "%{count} posts"
rss_num_participants:
one: "%{count} participant"
other: "%{count} participants"
2013-12-15 17:17:39 +08:00
read_full_topic: "Read full topic"
private_message_abbrev: "Msg"
2017-08-09 04:21:42 +08:00
2013-07-06 04:49:06 +08:00
rss_description:
latest: "Latest topics"
2016-03-01 01:58:51 +08:00
top: "Top topics"
top_all: "All time top topics"
top_yearly: "Yearly top topics"
top_quarterly: "Quarterly top topics"
top_monthly: "Monthly top topics"
top_weekly: "Weekly top topics"
top_daily: "Daily top topics"
2015-06-09 19:39:03 +08:00
posts: "Latest posts"
private_posts: "Latest personal messages"
group_posts: "Latest posts from %{group_name}"
group_mentions: "Latest mentions from %{group_name}"
user_posts: "Latest posts by @%{username}"
user_topics: "Latest topics by @%{username}"
2016-04-28 00:23:29 +08:00
tag: "Tagged topics"
2017-08-09 04:21:42 +08:00
badge: "%{display_name} badge on %{site_title}"
too_late_to_edit: "That post was created too long ago. It can no longer be edited or deleted."
edit_conflict: "That post was edited by another user and your changes can no longer be saved."
revert_version_same: "The current version is same as the version you are trying to revert to."
cannot_edit_on_slow_mode: "This topic is in slow mode. To encourage thoughtful, considered discussion, editing old posts in this topic is not currently allowed during slow mode."
2013-02-06 03:16:51 +08:00
2015-01-23 17:57:01 +08:00
excerpt_image: "image"
Improving bookmarks part 1 (#8466) Note: All of this functionality is hidden behind a hidden, default false, site setting called `enable_bookmarks_with_reminders`. Also, any feedback on Ember code would be greatly appreciated! This is part 1 of the bookmark improvements. The next PR will address the backend logic to send reminder notifications for bookmarked posts to users. This PR adds the following functionality: * We are adding a new `bookmarks` table and `Bookmark` model to make the bookmarks a first-class citizen and to allow attaching reminders to them. * Posts now have a new button in their actions menu that has the icon of an actual book * Clicking the button opens the new bookmark modal. * Both name and the reminder type are optional. * If you close the modal without doing anything, the bookmark is saved with no reminder. * If you click the Cancel button, no bookmark is saved at all. * All of the reminder type tiles are dynamic and the times they show will be based on your user timezone set in your profile (this should already be set for you). * If for some reason a user does not have their timezone set they will not be able to set a reminder, but they will still be able to create a bookmark. * A bookmark can be deleted by clicking on the book icon again which will be red if the post is bookmarked. This PR does NOT do anything to migrate or change existing bookmarks in the form of `PostActions`, the two features live side-by-side here. Also this does nothing to the topic bookmarking.
2019-12-11 12:04:02 +08:00
bookmarks:
errors:
already_bookmarked_post: "You cannot bookmark the same post twice."
too_many: "Sorry, you cannot add more than %{limit} bookmarks, visit <a href='%{user_bookmarks_url}'>%{user_bookmarks_url}</a> to remove some."
FEATURE: Send notifications for time-based and At Desktop bookmark reminders (#9071) * This PR implements the scheduling and notification system for bookmark reminders. Every 5 minutes a schedule runs to check any reminders that need to be sent before now, limited to **300** reminders at a time. Any leftover reminders will be sent in the next run. This is to avoid having to deal with fickle sidekiq and reminders in the far-flung future, which would necessitate having a background job anyway to clean up any missing `enqueue_at` reminders. * If a reminder is sent its `reminder_at` time is cleared and the `reminder_last_sent_at` time is filled in. Notifications are only user-level notifications for now. * All JavaScript and frontend code related to displaying the bookmark reminder notification is contained here. The reminder functionality is now re-enabled in the bookmark modal as well. * This PR also implements the "Remind me next time I am at my desktop" bookmark reminder functionality. When the user is on a mobile device they are able to select this option. When they choose this option we set a key in Redis saying they have a pending at desktop reminder. The next time they change devices we check if the new device is desktop, and if it is we send reminders using a DistributedMutex. There is also a job to ensure consistency of these reminders in Redis (in case Redis drops the ball) and the at desktop reminders expire after 20 days. * Also in this PR is a fix to delete all Bookmarks for a user via `UserDestroyer`
2020-03-12 08:16:00 +08:00
cannot_set_past_reminder: "You cannot set a bookmark reminder in the past."
cannot_set_reminder_in_distant_future: "You cannot set a bookmark reminder more than 10 years in the future."
time_must_be_provided: "time must be provided for all reminders"
for_topic_must_use_first_post: "You can only use the first post to bookmark the topic."
Improving bookmarks part 1 (#8466) Note: All of this functionality is hidden behind a hidden, default false, site setting called `enable_bookmarks_with_reminders`. Also, any feedback on Ember code would be greatly appreciated! This is part 1 of the bookmark improvements. The next PR will address the backend logic to send reminder notifications for bookmarked posts to users. This PR adds the following functionality: * We are adding a new `bookmarks` table and `Bookmark` model to make the bookmarks a first-class citizen and to allow attaching reminders to them. * Posts now have a new button in their actions menu that has the icon of an actual book * Clicking the button opens the new bookmark modal. * Both name and the reminder type are optional. * If you close the modal without doing anything, the bookmark is saved with no reminder. * If you click the Cancel button, no bookmark is saved at all. * All of the reminder type tiles are dynamic and the times they show will be based on your user timezone set in your profile (this should already be set for you). * If for some reason a user does not have their timezone set they will not be able to set a reminder, but they will still be able to create a bookmark. * A bookmark can be deleted by clicking on the book icon again which will be red if the post is bookmarked. This PR does NOT do anything to migrate or change existing bookmarks in the form of `PostActions`, the two features live side-by-side here. Also this does nothing to the topic bookmarking.
2019-12-11 12:04:02 +08:00
reminders:
at_desktop: "Next time I'm at my desktop"
later_today: "Later today"
next_business_day: "Next business day"
tomorrow: "Tomorrow"
next_week: "Next week"
next_month: "Next month"
custom: "Custom date and time"
Improving bookmarks part 1 (#8466) Note: All of this functionality is hidden behind a hidden, default false, site setting called `enable_bookmarks_with_reminders`. Also, any feedback on Ember code would be greatly appreciated! This is part 1 of the bookmark improvements. The next PR will address the backend logic to send reminder notifications for bookmarked posts to users. This PR adds the following functionality: * We are adding a new `bookmarks` table and `Bookmark` model to make the bookmarks a first-class citizen and to allow attaching reminders to them. * Posts now have a new button in their actions menu that has the icon of an actual book * Clicking the button opens the new bookmark modal. * Both name and the reminder type are optional. * If you close the modal without doing anything, the bookmark is saved with no reminder. * If you click the Cancel button, no bookmark is saved at all. * All of the reminder type tiles are dynamic and the times they show will be based on your user timezone set in your profile (this should already be set for you). * If for some reason a user does not have their timezone set they will not be able to set a reminder, but they will still be able to create a bookmark. * A bookmark can be deleted by clicking on the book icon again which will be red if the post is bookmarked. This PR does NOT do anything to migrate or change existing bookmarks in the form of `PostActions`, the two features live side-by-side here. Also this does nothing to the topic bookmarking.
2019-12-11 12:04:02 +08:00
2013-05-08 13:20:38 +08:00
groups:
success:
2018-04-06 17:11:00 +08:00
bulk_add:
2019-06-12 19:22:27 +08:00
one: "%{count} user has been added to the group."
2018-04-06 17:11:00 +08:00
other: "%{count} users have been added to the group."
errors:
2018-04-06 17:11:00 +08:00
grant_trust_level_not_valid: "'%{trust_level}' is not a valid trust level."
can_not_modify_automatic: "You cannot modify an automatic group"
member_already_exist:
one: "'%{username}' is already a member of this group."
other: "The following users are already members of this group: %{username}"
invalid_domain: "'%{domain}' is not a valid domain."
invalid_incoming_email: "'%{email}' is not a valid email address."
email_already_used_in_group: "'%{email}' is already used by the group '%{group_name}'."
email_already_used_in_category: "'%{email}' is already used by the category '%{category_name}'."
cant_allow_membership_requests: "You cannot allow membership requests for a group without any owners."
already_requested_membership: "You have already requested membership for this group."
Fix i18n issues reported on Crowdin (#11747) * Pluralize `groups.errors.adding_too_many_users` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#53882 * Pluralize `js.composer.error.title_too_short` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41172 * Pluralize `js.composer.error.title_too_long` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41174 * Pluralize `js.composer.error.post_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41178 * Pluralize `js.topic.progress.jump_prompt_of` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41958 * Use translations to join strings about posters This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#49334 It also makes some changes to the crawler view: * Removes `poster.moreCount` which is only available on the client for PMs * CSS class names are actually stored in `poster.extras` instead of `poster.extraClasses` * Stop concatenating category stats This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40740 * Pluralize `js.summary.description` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40782 * Pluralize `js.summary.description_time_MF` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40784 * Use translation to join list of tags This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#43372 * Pluralize `admin_js.admin.groups.manage.membership.automatic_membership_user_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#43720 * Pluralize `js.post.controls.delete_topic_confirm_modal` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#54804 * Stop concatenating `js.post.last_edited_on` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42358 * Stop concatenating `js.post.wiki_last_edited_on` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42356 It also fixes a regression because `js.post.wiki_last_edited_on` wasn't used anymore since 2017.
2021-02-02 17:50:04 +08:00
adding_too_many_users:
one: "Maximum %{count} user can be added at once"
other: "Maximum %{count} users can be added at once"
usernames_or_emails_required: "Usernames or emails must be present"
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
no_invites_with_discourse_connect: "You can invite only registered users when DiscourseConnect is enabled"
no_invites_without_local_logins: "You can invite only registered users when local logins are disabled"
2013-05-08 13:20:38 +08:00
default_names:
everyone: "everyone"
2013-05-08 13:20:38 +08:00
admins: "admins"
moderators: "moderators"
staff: "staff"
trust_level_0: "trust_level_0"
2013-05-08 13:20:38 +08:00
trust_level_1: "trust_level_1"
trust_level_2: "trust_level_2"
trust_level_3: "trust_level_3"
trust_level_4: "trust_level_4"
request_membership_pm:
title: "Membership Request for @%{group_name}"
request_accepted_pm:
title: "You've been accepted into @%{group_name}"
body: |
Your request to enter @%{group_name} has been accepted and you are now a member.
2013-05-08 13:20:38 +08:00
education:
until_posts:
one: "%{count} post"
other: "%{count} posts"
"new-topic": |
2013-02-15 07:32:06 +08:00
Welcome to %{site_name} &mdash; **thanks for starting a new conversation!**
2015-04-22 08:10:49 +08:00
- Does the title sound interesting if you read it out loud? Is it a good summary?
2015-04-22 08:10:49 +08:00
- Who would be interested in this? Why does it matter? What kind of responses do you want?
- Include commonly used words in your topic so others can *find* it. To group your topic with related topics, select a category (or tag).
For more, [see our community guidelines](%{base_path}/guidelines). This panel will only appear for your first %{education_posts_text}.
"new-reply": |
Welcome to %{site_name} &mdash; **thanks for contributing!**
- Be kind to your fellow community members.
- Does your reply improve the conversation?
- Constructive criticism is welcome, but criticize *ideas*, not people.
For more, [see our community guidelines](%{base_path}/guidelines). This panel will only appear for your first %{education_posts_text}.
avatar: |
2015-08-01 05:46:16 +08:00
### How about a picture for your account?
2017-02-05 04:04:15 +08:00
Youve posted a few topics and replies, but your profile picture isnt as unique as you are its just a letter.
2015-08-01 05:46:16 +08:00
Have you considered **[visiting your user profile](%{profile_path})** and uploading a picture that represents you?
2017-02-05 04:04:15 +08:00
Its easier to follow discussions and find interesting people in conversations when everyone has a unique profile picture!
sequential_replies: |
### Consider replying to several posts at once
2017-02-05 04:04:15 +08:00
Rather than several replies to a topic in a row, please consider a single reply that includes quotes from previous posts or @name references.
You can edit your previous reply to add a quote by highlighting text and selecting the <b>quote reply</b> button that appears.
2017-02-05 04:04:15 +08:00
Its easier for everyone to read topics that have fewer in-depth replies versus lots of small, individual replies.
dominating_topic: Youve posted more than %{percent}% of the replies here, is there anyone else you would like to hear from?
get_a_room: Youve replied to @%{reply_username} %{count} times, did you know you could send them a personal message instead?
too_many_replies: |
### You have reached the reply limit for this topic
2017-02-05 04:04:15 +08:00
Were sorry, but new users are temporarily limited to %{newuser_max_replies_per_topic} replies in the same topic.
2013-12-20 18:30:04 +08:00
Instead of adding another reply, please consider editing your previous replies, or visiting other topics.
reviving_old_topic: |
### Revive this topic?
The last reply to this topic was **%{time_ago}**. Your reply will bump the topic to the top of its list and notify anyone previously involved in the conversation.
Are you sure you want to continue this old conversation?
2013-02-06 03:16:51 +08:00
activerecord:
attributes:
category:
name: "Category Name"
topic:
title: "Title"
featured_link: "Featured Link"
category_id: "Category"
2013-02-06 03:16:51 +08:00
post:
raw: "Body"
user_profile:
bio_raw: "About Me"
user:
ip_address: ""
2013-02-06 03:16:51 +08:00
errors:
<<: *errors
2013-02-06 03:16:51 +08:00
models:
topic:
attributes:
base:
warning_requires_pm: "You can only attach warnings to personal messages."
too_many_users: "You can only send warnings to one user at a time."
cant_send_pm: "Sorry, you cannot send a personal message to that user."
no_user_selected: "You must select a valid user."
reply_by_email_disabled: "Reply by email has been disabled."
send_to_email_disabled: "Sorry, you cannot send personal messages to email."
target_user_not_found: "One of the users you are sending this message to could not be found."
unable_to_update: "There was an error updating that topic."
unable_to_tag: "There was an error tagging the topic."
featured_link:
invalid: "is invalid. URL should include http:// or https://."
user:
attributes:
password:
common: "is one of the 10000 most common passwords. Please use a more secure password."
same_as_username: "is the same as your username. Please use a more secure password."
same_as_email: "is the same as your email. Please use a more secure password."
same_as_current: "is the same as your current password."
same_as_name: "is the same as your name."
2017-02-16 08:24:12 +08:00
unique_characters: "has too many repeated characters. Please use a more secure password."
username:
same_as_password: "is the same as your password."
name:
same_as_password: "is the same as your password."
ip_address:
signup_not_allowed: "Signup is not allowed from this account."
user_profile:
attributes:
featured_topic_id:
invalid: "This topic cannot be featured on your profile."
user_email:
attributes:
user_id:
reassigning_primary_email: "Reassigning a primary email to another user is not allowed."
color_scheme_color:
attributes:
hex:
invalid: "is not a valid color"
post_reply:
base:
different_topic: "Post and reply must belong to the same topic."
2016-06-16 01:49:57 +08:00
web_hook:
attributes:
payload_url:
invalid: "URL is invalid. URL should includes http:// or https://. And no blank is allowed."
custom_emoji:
attributes:
name:
taken: is already in use by another emoji
topic_timer:
attributes:
execute_at:
in_the_past: "must be in the future."
duration_minutes:
cannot_be_zero: "must be greater than 0."
exceeds_maximum: "cannot be more than 20 years."
translation_overrides:
attributes:
value:
invalid_interpolation_keys: 'The following interpolation key(s) are invalid: "%{keys}"'
watched_word:
attributes:
word:
too_many: "Too many words for that action"
base:
invalid_url: "Replacement URL is invalid"
2013-02-06 03:16:51 +08:00
uncategorized_category_name: "Uncategorized"
2014-07-10 23:28:49 +08:00
vip_category_name: "Lounge"
vip_category_description: "A category exclusive to members with trust level 3 and higher."
meta_category_name: "Site Feedback"
2014-08-18 16:51:44 +08:00
meta_category_description: "Discussion about this site, its organization, how it works, and how we can improve it."
2014-07-10 23:28:49 +08:00
staff_category_name: "Staff"
staff_category_description: "Private category for staff discussions. Topics are only visible to admins and moderators."
2016-12-26 22:56:33 +08:00
discourse_welcome_topic:
title: "Welcome to Discourse"
body: |
The first paragraph of this pinned topic will be visible as a welcome message to all new visitors on your homepage. It's important!
**Edit this** into a brief description of your community:
- Who is it for?
- What can they find here?
- Why should they come here?
- Where can they read more (links, resources, etc)?
<img src="%{base_path}/images/welcome/discourse-edit-post-animated.gif" width="508" height="106">
2016-12-26 22:56:33 +08:00
You may want to close this topic via the admin :wrench: (at the upper right and bottom), so that replies don't pile up on an announcement.
lounge_welcome:
title: "Welcome to the Lounge"
body: |
Congratulations! :confetti_ball:
2014-09-02 17:31:24 +08:00
If you can see this topic, you were recently promoted to **regular** (trust level 3).
You can now &hellip;
* Edit the title of any topic
* Change the category of any topic
2018-10-10 19:11:58 +08:00
* Have all your links followed ([automatic nofollow](https://en.wikipedia.org/wiki/Nofollow) is removed)
* Access a private Lounge category only visible to users at trust level 3 and higher
* Hide spam with a single flag
Here's the [current list of fellow regulars](%{base_path}/badges/3/regular). Be sure to say hi.
Thanks for being an important part of this community!
2014-09-02 17:31:24 +08:00
(For more information on trust levels, [see this topic][trust]. Please note that only members who continue to meet the requirements over time will remain regulars.)
2018-06-26 08:34:47 +08:00
[trust]: https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/
admin_quick_start_title: "READ ME FIRST: Admin Quick Start Guide"
2013-02-06 03:16:51 +08:00
category:
2014-02-22 09:04:52 +08:00
topic_prefix: "About the %{category} category"
replace_paragraph: "(Replace this first paragraph with a brief description of your new category. This guidance will appear in the category selection area, so try to keep it below 200 characters.)"
post_template: "%{replace_paragraph}\n\nUse the following paragraphs for a longer description, or to establish category guidelines or rules:\n\n- Why should people use this category? What is it for?\n\n- How exactly is this different than the other categories we already have?\n\n- What should topics in this category generally contain?\n\n- Do we need this category? Can we merge with another category, or subcategory?\n"
errors:
not_found: "Category not found!"
uncategorized_parent: "Uncategorized can't have a parent category"
self_parent: "A subcategory's parent cannot be itself"
depth: "You can't nest a subcategory under another"
invalid_email_in: "'%{email}' is not a valid email address."
email_already_used_in_group: "'%{email}' is already used by the group '%{group_name}'."
email_already_used_in_category: "'%{email}' is already used by the category '%{category_name}'."
description_incomplete: "The category description post must have at least one paragraph."
2019-04-01 12:37:27 +08:00
permission_conflict: "Any group that is allowed to access a subcategory must also be allowed to access the parent category. The following groups have access to one of the subcategories, but no access to parent category: %{group_names}."
disallowed_topic_tags: "This topic has tags not allowed by this category: '%{tags}'"
disallowed_tags_generic: "This topic has disallowed tags."
slug_contains_non_ascii_chars: "contains non-ascii characters"
cannot_delete:
uncategorized: "This category is special. It is intended as a holding area for topics that have no category; it cannot be deleted."
has_subcategories: "Can't delete this category because it has sub-categories."
topic_exists:
one: "Can't delete this category because it has %{count} topic. Oldest topic is %{topic_link}."
other: "Can't delete this category because it has %{count} topics. Oldest topic is %{topic_link}."
topic_exists_no_oldest: "Can't delete this category because topic count is %{count}."
uncategorized_description: "Topics that don't need a category, or don't fit into any other existing category."
2013-02-06 03:16:51 +08:00
trust_levels:
admin: "Admin"
staff: "Staff"
change_failed_explanation: "You attempted to demote %{user_name} to '%{new_trust_level}'. However their trust level is already '%{current_trust_level}'. %{user_name} will remain at '%{current_trust_level}' - if you wish to demote user lock trust level first"
post:
image_placeholder:
broken: "This image is broken"
hidden_bidi_character: "Bidirectional characters can change the order that text is rendered. This could be used to obscure malicious code."
has_likes:
one: "%{count} Like"
other: "%{count} Likes"
cannot_permanently_delete:
many_posts: "You can not permanently delete this topic because there are other posts."
wait_or_different_admin: "You must wait %{time_left} before permanently deleting this post or a different administrator must do it."
2013-02-06 03:16:51 +08:00
rate_limiter:
slow_down: "Youve performed this action too many times, please try again later."
too_many_requests: "Youve performed this action too many times. Please wait %{time_left} before trying again."
by_type:
first_day_replies_per_day: "We appreciate your enthusiasm, keep it up! That said, for the safety of our community, youve reached the maximum number of replies a new user can create on their first day. Please wait %{time_left} and youll be able to create more replies."
first_day_topics_per_day: "We appreciate your enthusiasm! That said, for the safety of our community, youve reached the maximum number of topics a new user can create on their first day. Please wait %{time_left} and youll be able to create more new topics."
create_topic: "Youre creating topics a bit too quickly. Please wait %{time_left} before trying again."
create_post: "Youre replying a bit too quickly. Please wait %{time_left} before trying again."
delete_post: "Youre deleting posts a bit too quickly. Please wait %{time_left} before trying again."
public_group_membership: "Youre joining/leaving groups a bit too frequently. Please wait %{time_left} before trying again."
topics_per_day: "Youve reached the maximum new topics allowed per day. You can create more new topics in %{time_left}."
pms_per_day: "Youve reached the maximum messages allowed per day. You can create more new messages in %{time_left}."
create_like: "Wow! Youve been sharing a lot of love! Youve reached the maximum daily likes for today, but as you gain trust levels, youll earn more daily likes. Youll be able to like posts again in %{time_left}."
create_bookmark: "Youve reached the maximum number of daily bookmarks. You can create more bookmarks in %{time_left}."
edit_post: "Youve reached the maximum number of daily edits. You can submit more edits in %{time_left}."
live_post_counts: "Youre asking for live post counts too quickly. Please wait %{time_left} before trying again."
unsubscribe_via_email: "Youve reached the maximum number of unsubscribes via email. Please wait %{time_left} before trying again."
topic_invitations_per_day: "Youve reached the maximum number of topic invitations. You can send more invitations in %{time_left}."
2013-02-06 03:16:51 +08:00
hours:
one: "%{count} hour"
2013-02-06 03:16:51 +08:00
other: "%{count} hours"
minutes:
one: "%{count} minute"
2013-02-06 03:16:51 +08:00
other: "%{count} minutes"
seconds:
one: "%{count} second"
2013-02-06 03:16:51 +08:00
other: "%{count} seconds"
short_time: "a few seconds"
2013-02-06 03:16:51 +08:00
datetime:
distance_in_words:
half_a_minute: "< 1m"
2013-02-06 03:16:51 +08:00
less_than_x_seconds:
one: "< %{count}s"
2013-02-06 03:16:51 +08:00
other: "< %{count}s"
x_seconds:
one: "%{count}s"
2013-02-06 03:16:51 +08:00
other: "%{count}s"
less_than_x_minutes:
one: "< %{count}m"
2013-02-06 03:16:51 +08:00
other: "< %{count}m"
x_minutes:
one: "%{count}m"
2013-02-06 03:16:51 +08:00
other: "%{count}m"
about_x_hours:
one: "%{count}h"
2013-02-06 03:16:51 +08:00
other: "%{count}h"
x_days:
one: "%{count}d"
2013-02-06 03:16:51 +08:00
other: "%{count}d"
about_x_months:
one: "%{count}mon"
2013-02-06 03:16:51 +08:00
other: "%{count}mon"
x_months:
one: "%{count}mon"
2013-02-06 03:16:51 +08:00
other: "%{count}mon"
about_x_years:
one: "%{count}y"
2013-02-06 03:16:51 +08:00
other: "%{count}y"
over_x_years:
one: "> %{count}y"
2013-02-06 03:16:51 +08:00
other: "> %{count}y"
almost_x_years:
one: "%{count}y"
2013-02-06 03:16:51 +08:00
other: "%{count}y"
distance_in_words_verbose:
half_a_minute: "just now"
2019-05-22 19:29:20 +08:00
less_than_x_seconds: "just now"
2013-02-06 03:16:51 +08:00
x_seconds:
one: "%{count} second ago"
2013-02-06 03:16:51 +08:00
other: "%{count} seconds ago"
less_than_x_minutes:
one: "less than %{count} minute ago"
2013-02-06 03:16:51 +08:00
other: "less than %{count} minutes ago"
x_minutes:
one: "%{count} minute ago"
2013-02-06 03:16:51 +08:00
other: "%{count} minutes ago"
about_x_hours:
one: "%{count} hour ago"
2013-02-06 03:16:51 +08:00
other: "%{count} hours ago"
x_days:
one: "%{count} day ago"
2013-02-06 03:16:51 +08:00
other: "%{count} days ago"
about_x_months:
one: "about %{count} month ago"
2013-02-06 03:16:51 +08:00
other: "about %{count} months ago"
x_months:
one: "%{count} month ago"
2013-02-06 03:16:51 +08:00
other: "%{count} months ago"
about_x_years:
one: "about %{count} year ago"
2013-02-06 03:16:51 +08:00
other: "about %{count} years ago"
over_x_years:
one: "over %{count} year ago"
2013-02-06 03:16:51 +08:00
other: "over %{count} years ago"
almost_x_years:
one: "almost %{count} year ago"
2013-02-06 03:16:51 +08:00
other: "almost %{count} years ago"
password_reset:
2015-07-31 17:00:36 +08:00
no_token: "Sorry, that password change link is too old. Select the Log In button and use 'I forgot my password' to get a new link."
2017-01-18 19:00:43 +08:00
choose_new: "Choose a new password"
choose: "Choose a password"
update: "Update Password"
save: "Set Password"
title: "Reset Password"
2013-02-06 03:16:51 +08:00
success: "You successfully changed your password and are now logged in."
success_unapproved: "You successfully changed your password."
email_login:
invalid_token: "Sorry, that email login link is too old. Select the Log In button and use 'I forgot my password' to get a new link."
title: "Email login"
user_auth_tokens:
browser:
chrome: "Google Chrome"
2019-05-30 21:29:43 +08:00
discoursehub: "DiscourseHub app"
edge: "Microsoft Edge"
firefox: "Firefox"
ie: "Internet Explorer"
2019-05-30 21:29:43 +08:00
opera: "Opera"
safari: "Safari"
unknown: "unknown browser"
device:
android: "Android Device"
chromebook: "Chrome OS"
ipad: "iPad"
iphone: "iPhone"
ipod: "iPod"
linux: "GNU/Linux Computer"
2019-05-30 21:29:43 +08:00
mac: "Mac"
mobile: "Mobile Device"
windows: "Windows Computer"
unknown: "unknown device"
os:
android: "Android"
chromeos: "Chrome OS"
ios: "iOS"
linux: "Linux"
2019-05-30 21:29:43 +08:00
macos: "macOS"
windows: "Microsoft Windows"
unknown: "unknown operating system"
2013-02-06 03:16:51 +08:00
change_email:
wrong_account_error: "You are logged in the wrong account, please log out and try again."
2013-02-06 03:16:51 +08:00
confirmed: "Your email has been updated."
please_continue: "Continue to %{site_name}"
2013-02-06 03:16:51 +08:00
error: "There was an error changing your email address. Perhaps the address is already in use?"
doesnt_exist: "That email address is not associated with your account."
error_staged: "There was an error changing your email address. The address is already in use by a staged user."
already_done: "Sorry, this confirmation link is no longer valid. Perhaps your email was already changed?"
confirm: "Confirm"
max_secondary_emails_error: "You have reached the maximum allowed secondary emails limit."
authorizing_new:
title: "Confirm your new email"
description: "Please confirm you would like your email address changed to:"
description_add: "Please confirm you would like to add an alternate email address:"
authorizing_old:
title: "Change your email address"
description: "Please confirm your email address change"
description_add: "Please confirm you would like to add an alternate email address:"
old_email: "Old email: %{email}"
new_email: "New email: %{email}"
almost_done_title: "Confirming new email address"
almost_done_description: "We have sent an email to your new email address to confirm the change!"
2013-02-06 03:16:51 +08:00
associated_accounts:
revoke_failed: "Failed to revoke your account with %{provider_name}."
connected: "(connected)"
2013-02-06 03:16:51 +08:00
activation:
action: "Click here to activate your account"
2013-02-06 03:16:51 +08:00
already_done: "Sorry, this account confirmation link is no longer valid. Perhaps your account is already active?"
please_continue: "Your new account is confirmed; you will be redirected to the home page."
continue_button: "Continue to %{site_name}"
2013-02-06 03:16:51 +08:00
welcome_to: "Welcome to %{site_name}!"
approval_required: "A moderator must manually approve your new account before you can access this forum. You'll get an email when your account is approved!"
missing_session: "We cannot detect if your account was created, please ensure you have cookies enabled."
activated: "Sorry, this account has already been activated."
admin_confirm:
title: "Confirm Admin Account"
description: "Are you sure you want <b>%{target_username} (%{target_email})</b> to be an administrator?"
grant: "Grant Admin Access"
complete: "<b>%{target_username}</b> is now an administrator."
back_to: "Return to %{title}"
reviewable_score_types:
needs_approval:
title: "Needs Approval"
2013-02-06 03:16:51 +08:00
post_action_types:
off_topic:
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"
2013-02-06 03:16:51 +08:00
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"
email_title: '"%{title}" was flagged as spam'
email_body: "%{link}\n\n%{message}"
2013-02-06 03:16:51 +08:00
inappropriate:
title: "Inappropriate"
description: 'This post contains content that a reasonable person would consider offensive, abusive, or a violation of <a href="%{base_path}/guidelines">our community guidelines</a>.'
short_description: 'A violation of <a href="%{base_path}/guidelines">our community guidelines</a>'
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."
2014-08-10 06:18:36 +08:00
email_title: 'Your post in "%{title}"'
email_body: "%{link}\n\n%{message}"
notify_moderators:
2014-11-14 06:40:53 +08:00
title: "Something Else"
description: "This post requires staff attention for another reason not listed above."
short_description: "Requires staff attention for another reason"
2015-12-04 07:13:29 +08:00
email_title: 'A post in "%{title}" requires staff attention'
email_body: "%{link}\n\n%{message}"
2013-02-06 03:16:51 +08:00
bookmark:
title: "Bookmark"
description: "Bookmark this post"
short_description: "Bookmark this post"
2013-02-06 03:16:51 +08:00
like:
title: "Like"
description: "Like this post"
short_description: "Like this post"
2013-02-06 03:16:51 +08:00
draft:
sequence_conflict_error:
title: "draft error"
description: "Draft is being edited in another window. Please reload this page."
draft_backup:
pm_title: "Backup Drafts from ongoing topics"
pm_body: "Topic containing backup drafts"
user_activity:
no_log_search_queries: "Search log queries are currently disabled (an administrator can enable them in site settings)."
email_settings:
pop3_authentication_error: "There was an issue with the POP3 credentials provided, check the username and password and try again."
imap_authentication_error: "There was an issue with the IMAP credentials provided, check the username and password and try again."
imap_no_response_error: "An error occurred when communicating with the IMAP server. %{message}"
smtp_authentication_error: "There was an issue with the SMTP credentials provided, check the username and password and try again."
authentication_error_gmail_app_password: 'Application-specific password required. Learn more at <a target="_blank" href="https://support.google.com/accounts/answer/185833">this Google Help article</a>'
smtp_server_busy_error: "The SMTP server is currently busy, try again later."
smtp_unhandled_error: "There was an unhandled error when communicating with the SMTP server. %{message}"
FEATURE: Improve group email settings UI (#13083) This overhauls the user interface for the group email settings management, aiming to make it a lot easier to test the settings entered and confirm they are correct before proceeding. We do this by forcing the user to test the settings before they can be saved to the database. It also includes some quality of life improvements around setting up IMAP and SMTP for our first supported provider, GMail. This PR does not remove the old group email config, that will come in a subsequent PR. This is related to https://meta.discourse.org/t/imap-support-for-group-inboxes/160588 so read that if you would like more backstory. ### UI Both site settings of `enable_imap` and `enable_smtp` must be true to test this. You must enable SMTP first to enable IMAP. You can prefill the SMTP settings with GMail configuration. To proceed with saving these settings you must test them, which is handled by the EmailSettingsValidator. If there is an issue with the configuration or credentials a meaningful error message should be shown. IMAP settings must also be validated when IMAP is enabled, before saving. When saving IMAP, we fetch the mailboxes for that account and populate them. This mailbox must be selected and saved for IMAP to work (the feature acts as though it is disabled until the mailbox is selected and saved): ### Database & Backend This adds several columns to the Groups table. The purpose of this change is to make it much more explicit that SMTP/IMAP is enabled for a group, rather than relying on settings not being null. Also included is an UPDATE query to backfill these columns. These columns are automatically filled when updating the group. For GMail, we now filter the mailboxes returned. This is so users cannot use a mailbox like Sent or Trash for syncing, which would generally be disastrous. There is a new group endpoint for testing email settings. This may be useful in the future for other places in our UI, at which point it can be extracted to a more generic endpoint or module to be included.
2021-05-28 07:28:18 +08:00
imap_unhandled_error: "There was an unhandled error when communicating with the IMAP server. %{message}"
connection_error: "There was an issue connecting with the server, check the server name and port and try again."
timeout_error: "Connection to the server timed out, check the server name and port and try again."
unhandled_error: "Unhandled error when testing email settings. %{message}"
webauthn:
validation:
2019-10-31 00:56:25 +08:00
invalid_type_error: "The webauthn type provided was invalid. Valid types are webauthn.get and webauthn.create."
challenge_mismatch_error: "The provided challenge does not match the challenge generated by the authentication server."
invalid_origin_error: "The origin of the authentication request does not match the server origin."
malformed_attestation_error: "There was an error decoding the attestation data."
invalid_relying_party_id_error: "The Relying Party ID of the authentication request does not match the server Relying Party ID."
user_verification_error: "User verification is required."
unsupported_public_key_algorithm_error: "The provided public key algorithm is not supported by the server."
unsupported_attestation_format_error: "The attestation format is not supported by the server."
credential_id_in_use_error: "The credential ID provided is already in use."
public_key_error: "The public key verification for the credential failed."
ownership_error: "The security key is not owned by the user."
not_found_error: "A security key with the provided credential ID could not be found."
unknown_cose_algorithm_error: "The algorithm used for the security key is not recognized."
2014-02-06 06:54:16 +08:00
topic_flag_types:
spam:
title: "Spam"
description: "This topic is an advertisement. It is not useful or relevant to this site, but promotional in nature."
long_form: "flagged this as spam"
short_description: "This is an advertisement"
2014-02-06 06:54:16 +08:00
inappropriate:
title: "Inappropriate"
description: 'This topic contains content that a reasonable person would consider offensive, abusive, or a violation of <a href="%{base_path}/guidelines">our community guidelines</a>.'
long_form: "flagged this as inappropriate"
short_description: 'A violation of <a href="%{base_path}/guidelines">our community guidelines</a>'
2014-02-06 06:54:16 +08:00
notify_moderators:
2014-11-14 06:40:53 +08:00
title: "Something Else"
description: 'This topic requires general staff attention based on the <a href="%{base_path}/guidelines">guidelines</a>, <a href="%{tos_url}">TOS</a>, or for another reason not listed above.'
long_form: "flagged this for moderator attention"
short_description: "Requires staff attention for another reason"
2014-02-06 06:54:16 +08:00
email_title: 'The topic "%{title}" requires moderator attention'
email_body: "%{link}\n\n%{message}"
2013-02-06 03:16:51 +08:00
flagging:
you_must_edit: '<p>Your post was flagged by the community. Please <a href="%{path}">see your messages</a>.</p>'
user_must_edit: "<p>This post was flagged by the community and is temporarily hidden.</p>"
2013-02-06 03:16:51 +08:00
ignored:
hidden_content: "<p>Ignored content</p>"
2013-02-06 03:16:51 +08:00
archetypes:
regular:
2013-02-06 03:16:51 +08:00
title: "Regular Topic"
2014-06-17 00:28:07 +08:00
banner:
2015-07-02 20:52:21 +08:00
title: "Banner Topic"
2014-06-17 00:28:07 +08:00
message:
2014-09-26 05:02:23 +08:00
make: "This topic is now a banner. It will appear at the top of every page until it is dismissed by the user."
remove: "This topic is no longer a banner. It will no longer appear at the top of every page."
2013-02-06 03:16:51 +08:00
unsubscribed:
title: "Email preferences updated!"
description: "Email preferences for <b>%{email}</b> were updated. To change your email settings <a href='%{url}'>visit your user preferences</a>."
topic_description: "To re-subscribe to %{link}, use the notification control at the bottom or right of the topic."
private_topic_description: "To re-subscribe, use the notification control at the bottom or right of the topic."
uploads:
marked_insecure_from_theme_component_reason: "upload used in theme component"
unsubscribe:
title: "Unsubscribe"
stop_watching_topic: "Stop watching this topic, %{link}"
mute_topic: "Mute all notifications for this topic, %{link}"
2016-06-18 05:53:03 +08:00
unwatch_category: "Stop watching all topics in %{category}"
2016-06-18 03:23:36 +08:00
mailing_list_mode: "Turn off mailing list mode"
all: "Dont send me any mail from %{sitename}"
2016-06-18 03:23:36 +08:00
different_user_description: "You are currently logged in as a different user than the one we emailed. Please log out, or enter anonymous mode, and try again."
not_found_description: "Sorry, we couldn't find this unsubscribe. Its possible the link in your email is too old and has expired?"
log_out: "Log Out"
submit: "Save preferences"
digest_frequency:
title: "You are receiving summary emails %{frequency}"
never_title: "You are not receiving summary emails"
select_title: "Set summary emails frequency to:"
never: "never"
every_30_minutes: "every 30 minutes"
every_hour: "hourly"
daily: "daily"
weekly: "weekly"
every_month: "every month"
every_six_months: "every six months"
user_api_key:
title: "Authorize application access"
authorize: "Authorize"
read: "read"
read_write: "read/write"
description: '"%{application_name}" is requesting the following access to your account:'
instructions: 'We just generated a new user API key for you to use with "%{application_name}", please paste the following key into your application:'
otp_description: 'Would you like to allow "%{application_name}" to access this site?'
otp_confirmation:
confirm_title: Continue to %{site_name}
logging_in_as: Logging in as %{username}
confirm_button: Finish Login
no_trust_level: "Sorry, you do not have the required trust level to access the user API"
generic_error: "Sorry, we are unable to issue user API keys, this feature may be disabled by the site admin"
scopes:
message_bus: "Live updates"
notifications: "Read and clear notifications"
push: "Push notifications to external services"
session_info: "Read user session info"
read: "Read all"
write: "Write all"
one_time_password: "Create a one-time login token"
bookmarks_calendar: "Read bookmark reminders"
invalid_public_key: "Sorry, the public key is invalid."
invalid_auth_redirect: "Sorry, this auth_redirect host is not allowed."
invalid_token: "Missing, invalid or expired token."
flags:
errors:
already_handled: "Flag was already handled"
reports:
default:
labels:
count: Count
percent: Percent
day: Day
post_edits:
title: "Post Edits"
labels:
edited_at: Date
post: Post
editor: Editor
author: Author
edit_reason: Reason
description: "Number of new post edits."
user_flagging_ratio:
title: "User Flagging Ratio"
labels:
user: User
agreed_flags: Agreed flags
disagreed_flags: Disagreed flags
ignored_flags: Ignored flags
score: Score
description: "List of users ordered by ratio of staff response to their flags (disagreed to agreed)."
moderators_activity:
title: "Moderator Activity"
labels:
moderator: Moderator
flag_count: Flags reviewed
time_read: Time reading
topic_count: Topics created
post_count: Posts created
pm_count: PMs created
revision_count: Revisions
description: List of moderator activity including flags reviewed, reading time, topics created, posts created, personal messages created, and revisions.
flags_status:
title: "Flags Status"
values:
agreed: Agreed
disagreed: Disagreed
deferred: Deferred
no_action: No action
labels:
flag: Type
assigned: Assigned
poster: Poster
flagger: Flagger
time_to_resolution: Resolution time
description: "List of flags' statuses including type of flag, poster, flagger, and time to resolution."
visits:
title: "User Visits"
xaxis: "Day"
yaxis: "Number of visits"
description: "Number of all user visits."
2013-03-08 00:07:59 +08:00
signups:
title: "Signups"
xaxis: "Day"
yaxis: "Number of signups"
description: "New account registrations for this period."
new_contributors:
title: "New Contributors"
xaxis: "Day"
yaxis: "Number of new contributors"
description: "Number of users who made their first post during this period."
trust_level_growth:
title: "Trust Level growth"
xaxis:
tl1_reached: "Reached TL1"
tl2_reached: "Reached TL2"
tl3_reached: "Reached TL3"
tl4_reached: "Reached TL4"
yaxis: "Day"
description: "Number of users who increased their Trust Level during this period."
consolidated_page_views:
title: "Consolidated Pageviews"
xaxis:
page_view_crawler: "Crawlers"
page_view_anon: "Anonymous users"
page_view_logged_in: "Logged in users"
yaxis: "Day"
description: "Pageviews for logged in users, anonymous users and crawlers."
labels:
post: Post
editor: Editor
author: Author
edit_reason: Reason
dau_by_mau:
title: "DAU/MAU"
xaxis: "Day"
2018-05-17 10:24:13 +08:00
yaxis: "DAU/MAU"
description: "Number of members that logged in in the last day divided by number of members that logged in in the last month returns a % which indicates community 'stickiness'. Aim for >30%."
daily_engaged_users:
title: "Daily Engaged Users"
xaxis: "Day"
yaxis: "Engaged Users"
description: "Number of users that have liked or posted in the last day."
profile_views:
title: "User Profile Views"
xaxis: "Day"
yaxis: "Number of user profiles viewed"
description: "Total new views of user profiles."
2013-03-08 00:07:59 +08:00
topics:
title: "Topics"
xaxis: "Day"
yaxis: "Number of new topics"
description: "New topics created during this period."
2013-03-08 00:07:59 +08:00
posts:
title: "Posts"
xaxis: "Day"
yaxis: "Number of new posts"
description: "New posts created during this period"
2013-03-18 01:53:00 +08:00
likes:
title: "Likes"
2013-03-18 01:53:00 +08:00
xaxis: "Day"
yaxis: "Number of new likes"
description: "Number of new likes."
2013-03-13 02:19:01 +08:00
flags:
title: "Flags"
2013-03-13 02:19:01 +08:00
xaxis: "Day"
yaxis: "Number of flags"
description: "Number of new flags."
bookmarks:
title: "Bookmarks"
xaxis: "Day"
yaxis: "Number of new bookmarks"
description: "Number of new topics and posts bookmarked."
users_by_trust_level:
title: "Users per Trust Level"
xaxis: "Trust Level"
yaxis: "Number of Users"
labels:
level: Level
description: "Number of users grouped by trust level."
description_link: "https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/"
users_by_type:
title: "Users per Type"
xaxis: "Type"
yaxis: "Number of Users"
labels:
type: Type
xaxis_labels:
admin: Admin
moderator: Moderator
suspended: Suspended
silenced: Silenced
description: "Number of users grouped by admin, moderator, suspended, and silenced."
trending_search:
title: Trending Search Terms
labels:
term: Term
searches: Searches
2018-05-17 07:08:14 +08:00
click_through: CTR
description: "Most popular search terms with their click-through rates."
2013-03-18 03:08:38 +08:00
emails:
title: "Emails Sent"
xaxis: "Day"
yaxis: "Number of Emails"
description: "Number of new emails sent."
user_to_user_private_messages:
title: "User-to-User (excluding replies)"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of newly initiated personal messages."
user_to_user_private_messages_with_replies:
2018-05-17 08:25:24 +08:00
title: "User-to-User (with replies)"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of all new personal messages and responses."
system_private_messages:
2013-04-17 06:37:35 +08:00
title: "System"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of personal messages sent automatically by the System."
moderator_warning_private_messages:
2013-04-17 06:37:35 +08:00
title: "Moderator Warning"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of warnings sent by personal messages from moderators."
notify_moderators_private_messages:
2013-04-17 06:37:35 +08:00
title: "Notify Moderators"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of times moderators have been privately notified by a flag."
notify_user_private_messages:
2013-11-05 18:43:49 +08:00
title: "Notify User"
xaxis: "Day"
yaxis: "Number of messages"
description: "Number of times users have been privately notified by a flag."
top_referrers:
title: "Top Referrers"
xaxis: "User"
num_clicks: "Clicks"
num_topics: "Topics"
labels:
user: "User"
num_clicks: "Clicks"
num_topics: "Topics"
description: "Users listed by number of clicks on links they have shared."
top_traffic_sources:
title: "Top Traffic Sources"
xaxis: "Domain"
num_clicks: "Clicks"
num_topics: "Topics"
num_users: "Users"
labels:
domain: Domain
num_clicks: Clicks
num_topics: Topics
description: "External sources that have linked to this site the most."
top_referred_topics:
title: "Top Referred Topics"
labels:
num_clicks: "Clicks"
topic: "Topic"
description: "Topics that have received the most clicks from external sources."
page_view_anon_reqs:
title: "Anonymous"
xaxis: "Day"
yaxis: "Anonymous Pageviews"
2019-06-12 19:22:27 +08:00
description: "Number of new pageviews by visitors not logged in to an account."
page_view_logged_in_reqs:
title: "Logged In"
xaxis: "Day"
yaxis: "Logged In Pageviews"
description: "Number of new pageviews from logged in users."
page_view_crawler_reqs:
title: "Web Crawler Pageviews"
xaxis: "Day"
yaxis: "Web Crawler Pageviews"
description: "Total pageviews from web crawlers over time."
page_view_total_reqs:
title: "Pageviews"
xaxis: "Day"
yaxis: "Total Pageviews"
description: "Number of new pageviews from all visitors."
page_view_logged_in_mobile_reqs:
title: "Logged In Pageviews"
xaxis: "Day"
yaxis: "Mobile Logged In Pageviews"
description: "Number of new pageviews from users on mobile devices and logged in to an account."
page_view_anon_mobile_reqs:
title: "Anon Pageviews"
xaxis: "Day"
2016-05-19 08:25:31 +08:00
yaxis: "Mobile Anon Pageviews"
description: "Number of new pageviews from visitors on a mobile device who are not logged in."
http_background_reqs:
title: "Background"
xaxis: "Day"
yaxis: "Requests used for live update and tracking"
http_2xx_reqs:
title: "Status 2xx (OK)"
xaxis: "Day"
yaxis: "Successful requests (Status 2xx)"
http_3xx_reqs:
title: "HTTP 3xx (Redirect)"
xaxis: "Day"
yaxis: "Redirect requests (Status 3xx)"
http_4xx_reqs:
title: "HTTP 4xx (Client Error)"
xaxis: "Day"
yaxis: "Client Errors (Status 4xx)"
http_5xx_reqs:
title: "HTTP 5xx (Server Error)"
xaxis: "Day"
yaxis: "Server Errors (Status 5xx)"
http_total_reqs:
title: "Total"
xaxis: "Day"
yaxis: "Total requests"
time_to_first_response:
title: "Time to first response"
xaxis: "Day"
yaxis: "Average time (hours)"
2019-06-12 19:22:27 +08:00
description: "Average time (in hours) of the first response to new topics."
topics_with_no_response:
title: "Topics with no response"
xaxis: "Day"
yaxis: "Total"
description: "Number of new topics created that did not receive a response."
mobile_visits:
title: "User Visits (mobile)"
xaxis: "Day"
yaxis: "Number of visits"
description: "Number of unique users who visited using a mobile device."
web_crawlers:
title: "Web Crawler User Agents"
labels:
user_agent: "User Agent"
page_views: "Pageviews"
description: "List of web crawler user agents, sorted by pageviews."
suspicious_logins:
2018-11-07 06:29:57 +08:00
title: "Suspicious Logins"
labels:
user: User
client_ip: Client IP
location: Location
browser: Browser
device: Device
os: Operating System
login_time: Login Time
description: "Details of new logins that differ suspiciously from previous logins."
staff_logins:
title: "Admin Logins"
labels:
user: User
location: Location
login_at: Login at
description: "List of admin login times with locations."
top_uploads:
title: "Top Uploads"
labels:
filename: Filename
extension: Extension
author: Author
filesize: File size
description: "List all uploads by extension, filesize and author."
top_ignored_users:
2019-05-03 13:52:14 +08:00
title: "Top Ignored / Muted Users"
labels:
ignored_user: Ignored User
ignores_count: Ignores count
mutes_count: Mutes count
2019-05-03 13:52:14 +08:00
description: "Users who have been muted and/or ignored by many other users."
top_users_by_likes_received:
title: "Top Users by likes received"
labels:
user: User
qtt_like: Likes Received
description: "Top 10 users who have received likes."
top_users_by_likes_received_from_inferior_trust_level:
title: "Top Users by likes received from a user with a lower trust level"
labels:
user: User
trust_level: Trust level
qtt_like: Likes Received
description: "Top 10 users in a higher trust level being liked by people in a lower trust level."
top_users_by_likes_received_from_a_variety_of_people:
title: "Top Users by likes received from a variety of people"
labels:
user: User
qtt_like: Likes Received
description: "Top 10 users who have had likes from a wide range of people."
dashboard:
group_email_credentials_warning: 'There was an issue with the email credentials for the group <a href="%{base_path}/g/%{group_name}/manage/email">%{group_full_name}</a>. No emails will send from the group inbox until this problem is addressed. %{error}'
rails_env_warning: "Your server is running in %{env} mode."
host_names_warning: "Your config/database.yml file is using the default localhost hostname. Update it to use your site's hostname."
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. <a href="https://github.com/mperham/sidekiq" target="_blank">Learn about Sidekiq here</a>.'
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."
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/configuring-google-login-for-discourse/15858" target="_blank">See this guide to learn more</a>.'
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/configuring-facebook-login-for-discourse/13394" target="_blank">See this guide to learn more</a>.'
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/configuring-twitter-login-for-discourse/13395" target="_blank">See this guide to learn more</a>.'
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/configuring-github-login-for-discourse/13745" target="_blank">See this guide to learn more</a>.'
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/how-to-set-up-image-uploads-to-s3/7229" target="_blank">See "How to set up image uploads to S3?" to learn more</a>.'
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 <a href="%{base_path}/admin/site_settings">the Site Settings</a> and update the settings. <a href="https://meta.discourse.org/t/how-to-set-up-image-uploads-to-s3/7229" target="_blank">See "How to set up image uploads to S3?" to learn more</a>.'
s3_cdn_warning: 'The server is configured to upload files to S3, but there is no S3 CDN configured. This can lead to expensive S3 costs and slower site performance. <a href="https://meta.discourse.org/t/-/148916" target="_blank">See "Using Object Storage for Uploads" to learn more</a>.'
2018-10-10 19:11:58 +08:00
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 <a href="https://www.imagemagick.org/script/download.php" target="_blank">download the latest release</a>.'
failing_emails_warning: 'There are %{num_failed_jobs} email jobs that failed. Check your app.yml and ensure that the mail server settings are correct. <a href="%{base_path}/sidekiq/retries" target="_blank">See the failed jobs in Sidekiq</a>.'
subfolder_ends_in_slash: "Your subfolder setup is incorrect; the DISCOURSE_RELATIVE_URL_ROOT ends in a slash."
email_polling_errored_recently:
one: "Email polling has generated an error in the past 24 hours. Look at <a href='%{base_path}/logs' target='_blank'>the logs</a> for more details."
other: "Email polling has generated %{count} errors in the past 24 hours. Look at <a href='%{base_path}/logs' target='_blank'>the logs</a> for more details."
2018-02-16 14:35:37 +08:00
missing_mailgun_api_key: "The server is configured to send emails via Mailgun but you haven't provided an API key used to verify the webhook messages."
2018-11-14 15:03:02 +08:00
bad_favicon_url: "The favicon is failing to load. Check your favicon setting in <a href='%{base_path}/admin/site_settings'>Site Settings</a>."
poll_pop3_timeout: "Connection to the POP3 server is timing out. Incoming email could not be retrieved. Please check your <a href='%{base_path}/admin/site_settings/category/email'>POP3 settings</a> and service provider."
poll_pop3_auth_error: "Connection to the POP3 server is failing with an authentication error. Please check your <a href='%{base_path}/admin/site_settings/category/email'>POP3 settings</a>."
force_https_warning: "Your website is using SSL. But `<a href='%{base_path}/admin/site_settings/category/all_results?filter=force_https'>force_https</a>` is not yet enabled in your site settings."
out_of_date_themes: "Updates are available for the following themes:"
unreachable_themes: "We were unable to check for updates on the following themes:"
watched_word_regexp_error: "The regular expression for '%{action}' watched words is invalid. Please check your <a href='%{base_path}/admin/customize/watched_words'>Watched Word settings</a>, or disable the 'watched words regular expressions' site setting."
2013-02-06 03:16:51 +08:00
site_settings:
allow_bulk_invite: "Allow bulk invites by uploading a CSV file"
disabled: "disabled"
display_local_time_in_user_card: "Display the local time based on a user's timezone when their user card is opened."
censored_words: "Words that will be automatically replaced with &#9632;&#9632;&#9632;&#9632;"
delete_old_hidden_posts: "Auto-delete any hidden posts that stay hidden for more than 30 days."
2019-07-11 04:22:32 +08:00
default_locale: "The default language of this Discourse instance. You can replace the text of system generated categories and topics at <a href='%{base_path}/admin/customize/site_texts' target='_blank'>Customize / Text</a>."
allow_user_locale: "Allow users to choose their own language interface preference"
set_locale_from_accept_language_header: "set interface language for anonymous users from their web browser's language headers"
2018-01-29 10:33:55 +08:00
support_mixed_text_direction: "Support mixed left-to-right and right-to-left text directions."
2014-07-14 15:03:00 +08:00
min_post_length: "Minimum allowed post length in characters"
min_first_post_length: "Minimum allowed first post (topic body) length in characters"
min_personal_message_post_length: "Minimum allowed post length in characters for messages"
2014-07-14 15:03:00 +08:00
max_post_length: "Maximum allowed post length in characters"
topic_featured_link_enabled: "Enable posting a link with topics."
show_topic_featured_link_in_digest: "Show the topic featured link in the digest email."
min_topic_views_for_delete_confirm: "Minimum amount of views a topic must have for a confirmation popup to appear when it gets deleted"
2014-07-14 15:03:00 +08:00
min_topic_title_length: "Minimum allowed topic title length in characters"
max_topic_title_length: "Maximum allowed topic title length in characters"
min_personal_message_title_length: "Minimum allowed title length for a message in characters"
max_emojis_in_title: "Maximum allowed emojis in topic title"
2014-07-14 15:03:00 +08:00
min_search_term_length: "Minimum valid search term length in characters"
search_tokenize_chinese: "Force search to tokenize Chinese even on non Chinese sites"
search_tokenize_japanese: "Force search to tokenize Japanese even on non Japanese sites"
search_prefer_recent_posts: "If searching your large forum is slow, this option tries an index of more recent posts first"
search_recent_posts_size: "How many recent posts to keep in the index"
2017-07-14 01:34:31 +08:00
log_search_queries: "Log search queries performed by users"
2017-07-15 02:29:31 +08:00
search_query_log_max_size: "Maximum amount of search queries to keep"
search_query_log_max_retention_days: "Maximum amount of time to keep search queries, in days."
search_ignore_accents: "Ignore accents when searching for text."
category_search_priority_low_weight: "Weight applied to ranking for low category search priority."
category_search_priority_high_weight: "Weight applied to ranking for high category search priority."
2015-06-27 05:51:42 +08:00
allow_uncategorized_topics: "Allow topics to be created without a category. WARNING: If there are any uncategorized topics, you must recategorize them before turning this off."
2014-07-14 15:03:00 +08:00
allow_duplicate_topic_titles: "Allow topics with identical, duplicate titles."
allow_duplicate_topic_titles_category: "Allow topics with identical, duplicate titles if the category is different. allow_duplicate_topic_titles must be disabled."
2013-02-06 03:16:51 +08:00
unique_posts_mins: "How many minutes before a user can make a post with the same content again"
2014-07-14 15:03:00 +08:00
educate_until_posts: "When the user starts typing their first (n) new posts, show the pop-up new user education panel in the composer."
title: "The name of this site, as used in the title tag."
site_description: "Describe this site in one sentence, as used in the meta description tag."
short_site_description: "Short description, as used in the title tag on homepage."
contact_email: "Email address of key contact responsible for this site. Used for critical notifications, and also displayed on <a href='%{base_path}/about' target='_blank'>/about</a> for urgent matters."
contact_url: "Contact URL for this site. Displayed on the <a href='%{base_path}/about' target='_blank'>/about</a> page for urgent matters."
2014-07-14 15:03:00 +08:00
crawl_images: "Retrieve images from remote URLs to insert the correct width and height dimensions."
download_remote_images_to_local: "Convert remote images to local images by downloading them; this prevents broken images."
download_remote_images_threshold: "Minimum disk space necessary to download remote images locally (in percent)"
disabled_image_download_domains: "Remote images will never be downloaded from these domains. Pipe-delimited list."
editing_grace_period: "For (n) seconds after posting, editing will not create a new version in the post history."
editing_grace_period_max_diff: "Maximum number of character changes allowed in editing grace period, if more changed store another post revision (trust level 0 and 1)"
editing_grace_period_max_diff_high_trust: "Maximum number of character changes allowed in editing grace period, if more changed store another post revision (trust level 2 and up)"
staff_edit_locks_post: "Posts will be locked from editing if they are edited by staff members"
post_edit_time_limit: "A tl0 or tl1 author can edit their post for (n) minutes after posting. Set to 0 for forever."
2019-10-13 11:05:34 +08:00
tl2_post_edit_time_limit: "A tl2+ author can edit their post for (n) minutes after posting. Set to 0 for forever."
2014-07-14 15:03:00 +08:00
edit_history_visible_to_public: "Allow everyone to see previous versions of an edited post. When disabled, only staff members can view."
delete_removed_posts_after: "Posts removed by the author will be automatically deleted after (n) hours. If set to 0, posts will be deleted immediately."
notify_users_after_responses_deleted_on_flagged_post: "When a post is flagged and then removed, all users that responded to the post and had their responses removed will be notified."
2014-07-14 15:03:00 +08:00
max_image_width: "Maximum thumbnail width of images in a post"
max_image_height: "Maximum thumbnail height of images in a post"
responsive_post_image_sizes: "Resize lightbox preview images to allow for high DPI screens of the following pixel ratios. Remove all values to disable responsive images."
fixed_category_positions: "If checked, you will be able to arrange categories into a fixed order. If unchecked, categories are listed in order of activity."
fixed_category_positions_on_create: "If checked, category ordering will be maintained on topic creation dialog (requires fixed_category_positions)."
add_rel_nofollow_to_user_content: 'Add rel nofollow to all submitted user content, except for internal links (including parent domains). If you change this, you must rebake all posts with: "rake posts:rebake"'
2017-08-23 05:45:29 +08:00
exclude_rel_nofollow_domains: "A list of domains where nofollow should not be added to links. example.com will automatically allow sub.example.com as well. As a minimum, you should add the domain of this site to help web crawlers find all content. If other parts of your website are at other domains, add those too."
2014-07-14 15:03:00 +08:00
post_excerpt_maxlength: "Maximum length of a post excerpt / summary."
topic_excerpt_maxlength: "Maximum length of a topic excerpt / summary, generated from the first post in a topic."
show_pinned_excerpt_mobile: "Show excerpt on pinned topics in mobile view."
show_pinned_excerpt_desktop: "Show excerpt on pinned topics in desktop view."
2014-07-14 15:03:00 +08:00
post_onebox_maxlength: "Maximum length of a oneboxed Discourse post in characters."
blocked_onebox_domains: "A list of domains that will never be oneboxed e.g. wikipedia.org\n(Wildcard symbols * ? not supported)"
allowed_inline_onebox_domains: "A list of domains that will be oneboxed in miniature form if linked without a title"
enable_inline_onebox_on_all_domains: "Ignore inline_onebox_domain_allowlist site setting and allow inline onebox on all domains."
force_custom_user_agent_hosts: "Hosts for which to use the custom onebox user agent on all requests. (Especially useful for hosts that limit access by user agent)."
max_oneboxes_per_post: "Maximum number of oneboxes in a post."
facebook_app_access_token: "A token generated from your Facebook app ID and secret. Used to generate Instagram oneboxes."
logo: "The logo image at the top left of your site. Use a wide rectangular image with a height of 120 and an aspect ratio greater than 3:1. If left blank, the site title text will be shown."
logo_small: "The small logo image at the top left of your site, seen when scrolling down. Use a square 120 × 120 image. If left blank, a home glyph will be shown."
digest_logo: "The alternate logo image used at the top of your site's email summary. Use a wide rectangle image. Don't use an SVG image. If left blank, the image from the `logo` setting will be used."
mobile_logo: "The logo used on mobile version of your site. Use a wide rectangular image with a height of 120 and an aspect ratio greater than 3:1. If left blank, the image from the `logo` setting will be used."
logo_dark: "Dark scheme alternative for the 'logo' site setting."
logo_small_dark: "Dark scheme alternative for the 'logo small' site setting."
mobile_logo_dark: "Dark scheme alternative for the 'mobile logo' site setting."
FEATURE: Automatically generate optimized site metadata icons (#7372) This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required. ## Core - Adds an SiteIconManager module which manages automatic resizing and fallback - Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). - `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system. - Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations ## Wizard - Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload - Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo" - Various copy updates to support the changes - Remove the "upload-time" resizing for `large_icon`. This is no longer required. ## Site Settings UX - Move logo/icon settings under a new "Branding" tab - Various copy changes to support the changes - Adds placeholder support to the `image-uploader` component - Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings - Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name ## Dashboard Warnings - Remove PWA icon and PWA title warnings. Both are now handled automatically. ## Bonus - Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 21:44:45 +08:00
large_icon: "Image used as the base for other metadata icons. Should ideally be larger than 512 x 512. If left blank, logo_small will be used."
manifest_icon: "Image used as logo/splash image on Android. Will be automatically resized to 512 × 512. If left blank, large_icon will be used."
manifest_screenshots: "Screenshots that showcase your instance features and functionality on its install prompt page. All images should be local uploads and of the same dimensions."
FEATURE: Automatically generate optimized site metadata icons (#7372) This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required. ## Core - Adds an SiteIconManager module which manages automatic resizing and fallback - Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). - `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system. - Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations ## Wizard - Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload - Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo" - Various copy updates to support the changes - Remove the "upload-time" resizing for `large_icon`. This is no longer required. ## Site Settings UX - Move logo/icon settings under a new "Branding" tab - Various copy changes to support the changes - Adds placeholder support to the `image-uploader` component - Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings - Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name ## Dashboard Warnings - Remove PWA icon and PWA title warnings. Both are now handled automatically. ## Bonus - Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 21:44:45 +08:00
favicon: "A favicon for your site, see <a href='https://en.wikipedia.org/wiki/Favicon' target='_blank'>https://en.wikipedia.org/wiki/Favicon</a>. To work correctly over a CDN it must be a png. Will be resized to 32x32. If left blank, large_icon will be used."
apple_touch_icon: "Icon used for Apple touch devices. Will be automatically resized to 180x180. If left blank, large_icon will be used."
opengraph_image: "Default opengraph image, used when the page has no other suitable image. If left blank, large_icon will be used"
twitter_summary_large_image: "Twitter card 'summary large image' (should be at least 280 in width, and at least 150 in height). If left blank, regular card metadata is generated using the opengraph_image."
2014-07-02 16:00:57 +08:00
notification_email: "The from: email address used when sending all essential system emails. The domain specified here must have SPF, DKIM and reverse PTR records set correctly for email to arrive."
email_custom_headers: "A pipe-delimited list of custom email headers"
2018-10-11 04:53:02 +08:00
email_subject: "Customizable subject format for standard emails. See <a href='https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801' target='_blank'>https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801</a>"
detailed_404: "Provides more details to users about why they cant access a particular topic. Note: This is less secure because users will know if a URL links to a valid topic."
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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 Cross Site Request Forgery vectors on supported browsers (Lax or Strict). Warning: Strict will only work on sites that force login and use an external auth method."
2014-07-14 15:03:00 +08:00
summary_score_threshold: "The minimum score required for a post to be included in 'Summarize This Topic'"
summary_posts_required: "Minimum posts in a topic before 'Summarize This Topic' is enabled. Changes to this setting will be applied retroactively within a week."
summary_likes_required: "Minimum likes in a topic before 'Summarize This Topic' is enabled. Changes to this setting will be applied retroactively within a week."
2014-07-14 15:03:00 +08:00
summary_percent_filter: "When a user clicks 'Summarize This Topic', show the top % of posts"
2019-02-05 19:59:20 +08:00
summary_max_results: "Maximum posts returned by 'Summarize This Topic'"
summary_timeline_button: "Show a 'Summarize' button in the timeline"
enable_personal_messages: "Allow trust level 1 (configurable via min trust to send messages) users to create messages and reply to messages. Note that staff can always send messages no matter what."
enable_system_message_replies: "Allows users to reply to system messages, even if personal messages are disabled"
enable_long_polling: "Message bus used for notification can use long polling"
enable_chunked_encoding: "Enable chunked encoding responses by the server. This feature works on most setups however some proxies may buffer, causing responses to be delayed"
long_polling_base_url: "Base URL used for long polling (when a CDN is serving dynamic content, be sure to set this to origin pull) eg: http://origin.site.com"
long_polling_interval: "Amount of time the server should wait before responding to clients when there is no data to send (logged on users only)"
polling_interval: "When not long polling, how often should logged on clients poll in milliseconds"
anon_polling_interval: "How often should anonymous clients poll in milliseconds"
background_polling_interval: "How often should the clients poll in milliseconds (when the window is in the background)"
2019-05-27 21:06:46 +08:00
hide_post_sensitivity: "The likelihood that a flagged post will be hidden"
silence_new_user_sensitivity: "The likelihood that a new user will be silenced based on spam flags"
auto_close_topic_sensitivity: "The likelihood that a flagged topic will be automatically closed"
2014-07-14 15:03:00 +08:00
cooldown_minutes_after_hiding_posts: "Number of minutes a user must wait before they can edit a post hidden via community flagging"
2016-06-21 08:16:30 +08:00
max_topics_in_first_day: "The maximum number of topics a user is allowed to create in the 24 hour period after creating their first post"
max_replies_in_first_day: "The maximum number of replies a user is allowed to create in the 24 hour period after creating their first post"
tl2_additional_likes_per_day_multiplier: "Increase limit of likes per day for tl2 (member) by multiplying with this number"
tl3_additional_likes_per_day_multiplier: "Increase limit of likes per day for tl3 (regular) by multiplying with this number"
tl4_additional_likes_per_day_multiplier: "Increase limit of likes per day for tl4 (leader) by multiplying with this number"
tl2_additional_edits_per_day_multiplier: "Increase limit of edits per day for tl2 (member) by multiplying with this number"
tl3_additional_edits_per_day_multiplier: "Increase limit of edits per day for tl3 (regular) by multiplying with this number"
tl4_additional_edits_per_day_multiplier: "Increase limit of edits per day for tl4 (leader) by multiplying with this number"
tl2_additional_flags_per_day_multiplier: "Increase limit of flags per day for tl2 (member) by multiplying with this number"
tl3_additional_flags_per_day_multiplier: "Increase limit of flags per day for tl3 (regular) by multiplying with this number"
tl4_additional_flags_per_day_multiplier: "Increase limit of flags per day for tl4 (leader) by multiplying with this number"
2017-11-11 01:18:08 +08:00
num_users_to_silence_new_user: "If a new user's posts get num_spam_flags_to_silence_new_user spam flags from this many different users, hide all their posts and prevent future posting. 0 to disable."
num_tl3_flags_to_silence_new_user: "If a new user's posts get this many flags from num_tl3_users_to_silence_new_user different trust level 3 users, hide all their posts and prevent future posting. 0 to disable."
num_tl3_users_to_silence_new_user: "If a new user's posts get num_tl3_flags_to_silence_new_user flags from this many different trust level 3 users, hide all their posts and prevent future posting. 0 to disable."
notify_mods_when_user_silenced: "If a user is automatically silenced, send a message to all moderators."
flag_sockpuppets: "If a new user replies to a topic from the same IP address as the user who started the topic, flag both of their posts as potential spam."
2014-07-14 15:03:00 +08:00
traditional_markdown_linebreaks: "Use traditional linebreaks in Markdown, which require two trailing spaces for a linebreak."
2018-04-26 03:47:09 +08:00
enable_markdown_typographer: "Use typography rules to improve readability of text: replace straight quotes ' with curly quotes , (c) (tm) with symbols, -- with emdash , etc"
2018-10-10 19:11:58 +08:00
enable_markdown_linkify: "Automatically treat text that looks like a link as a link: www.example.com and https://example.com will be automatically linked"
markdown_linkify_tlds: "List of top level domains that get automatically treated as links"
markdown_typographer_quotation_marks: "List of double and single quotes replacement pairs"
2014-07-22 16:46:58 +08:00
post_undo_action_window_mins: "Number of minutes users are allowed to undo recent actions on a post (like, flag, etc)."
must_approve_users: "Staff must approve all new user accounts before they are allowed to access the site."
invite_code: "User must type this code to be allowed account registration, ignored when empty (case-insensitive)"
approve_suspect_users: "Add suspicious users to the review queue. Suspicious users have entered a bio/website but have no reading activity."
review_every_post: "All posts must be reviewed. WARNING! NOT RECOMMENDED FOR BUSY SITES."
pending_users_reminder_delay_minutes: "Notify moderators if new users have been waiting for approval for longer than this many minutes. Set to -1 to disable notifications."
persistent_sessions: "Users will remain logged in when the web browser is closed"
maximum_session_age: "User will remain logged in for n hours since last visit"
ga_version: "Version of Google Universal Analytics to use: v3 (analytics.js), v4 (gtag)"
ga_universal_tracking_code: "Google Universal Analytics tracking code ID, eg: UA-12345678-9; see <a href='https://google.com/analytics' target='_blank'>https://google.com/analytics</a>"
ga_universal_domain_name: "Google Universal Analytics domain name, eg: mysite.com; see <a href='https://google.com/analytics' target='_blank'>https://google.com/analytics</a>"
ga_universal_auto_link_domains: "Enable Google Universal Analytics cross-domain tracking. Outgoing links to these domains will have the client id added to them. See <a href='https://support.google.com/analytics/answer/1034342?hl=en' target='_blank'>Google's Cross-Domain Tracking guide.</a>"
gtm_container_id: "Google Tag Manager container id. eg: GTM-ABCDEF. <br/>Note: Third-party scripts loaded by GTM may need to be allowlisted in 'content security policy script src'."
2018-10-11 04:53:02 +08:00
enable_escaped_fragments: "Fall back to Google's Ajax-Crawling API if no webcrawler is detected. See <a href='https://developers.google.com/webmasters/ajax-crawling/docs/learn-more' target='_blank'>https://developers.google.com/webmasters/ajax-crawling/docs/learn-more</a>"
moderators_manage_categories_and_groups: "Allow moderators to manage categories and groups"
moderators_change_post_ownership: "Allow moderators to change post ownership"
cors_origins: "Allowed origins for cross-origin requests (CORS). Each origin must include http:// or https://. The DISCOURSE_ENABLE_CORS env variable must be set to true to enable CORS."
use_admin_ip_allowlist: "Admins can only log in if they are at an IP address defined in the Screened IPs list (Admin > Logs > Screened Ips)."
blocked_ip_blocks: "A list of private IP blocks that should never be crawled by Discourse"
allowed_internal_hosts: "A list of internal hosts that discourse can safely crawl for oneboxing and other purposes"
allowed_onebox_iframes: "A list of iframe src domains which are allowed via Onebox embeds. `*` will allow all default Onebox engines."
allowed_iframes: "A list of iframe src domain prefixes that discourse can safely allow in posts"
allowed_crawler_user_agents: "User agents of web crawlers that should be allowed to access the site. WARNING! SETTING THIS WILL DISALLOW ALL CRAWLERS NOT LISTED HERE!"
blocked_crawler_user_agents: "Unique case insensitive word in the user agent string identifying web crawlers that should not be allowed to access the site. Does not apply if allowlist is defined."
slow_down_crawler_user_agents: 'User agents of web crawlers that should be rate limited as configured in the "slow down crawler rate" setting. Each value must be at least 3 characters long.'
slow_down_crawler_rate: "If slow_down_crawler_user_agents is specified this rate will apply to all the crawlers (number of seconds delay between requests)"
content_security_policy: "Enable Content-Security-Policy"
content_security_policy_report_only: "Enable Content-Security-Policy-Report-Only"
content_security_policy_collect_reports: "Enable CSP violation report collection at /csp_reports"
content_security_policy_frame_ancestors: "Restrict who can embed this site in iframes via CSP. Control allowed hosts on <a href='%{base_path}/admin/customize/embedding'>Embedding</a>"
content_security_policy_script_src: "Additional allowlisted script sources. The current host and CDN are included by default. See <a href='https://meta.discourse.org/t/mitigate-xss-attacks-with-content-security-policy/104243' target='_blank'>Mitigate XSS Attacks with Content Security Policy.</a>"
invalidate_inactive_admin_email_after_days: "Admin accounts that have not visited the site in this number of days will need to re-validate their email address before logging in. Set to 0 to disable."
top_menu: "Determine which items appear in the homepage navigation, and in what order. Example latest|new|unread|categories|top|read|posted|bookmarks"
post_menu: "Determine which items appear on the post menu, and in what order. Example like|edit|flag|delete|share|bookmark|reply"
2014-07-14 15:03:00 +08:00
post_menu_hidden_items: "The menu items to hide by default in the post menu unless an expansion ellipsis is clicked on."
share_links: "Determine which items appear on the share dialog, and in what order."
site_contact_username: "A valid staff username to send all automated messages from. If left blank the default System account will be used."
site_contact_group_name: "A valid name of a group that gets invited to all automatically sent private messages."
send_welcome_message: "Send all new users a welcome message with a quick start guide."
send_tl1_welcome_message: "Send new trust level 1 users a welcome message."
send_tl2_promotion_message: "Send new trust level 2 users a message about promotion."
2014-07-14 15:03:00 +08:00
suppress_reply_directly_below: "Don't show the expandable reply count on a post when there is only a single reply directly below this post."
suppress_reply_directly_above: "Don't show the expandable in-reply-to on a post when there is only a single reply directly above this post."
remove_full_quote: "Automatically remove full quotes on direct replies."
suppress_reply_when_quoting: "Don't show the expandable in-reply-to on a post when post quotes reply."
max_reply_history: "Maximum number of replies to expand when expanding in-reply-to"
2014-07-14 15:03:00 +08:00
topics_per_period_in_top_summary: "Number of top topics shown in the default top topics summary."
topics_per_period_in_top_page: "Number of top topics shown on the expanded 'Show More' top topics."
redirect_users_to_top_page: "Automatically redirect new and long absent users to the top page."
top_page_default_timeframe: "Default timeframe for the top page."
moderators_view_emails: "Allow moderators to view user emails"
prioritize_username_in_ux: "Show username first on user page, user card and posts (when disabled name is shown first)"
2017-12-15 09:29:39 +08:00
enable_rich_text_paste: "Enable automatic HTML to Markdown conversion when pasting text into the composer. (Experimental)"
send_old_credential_reminder_days: "Remind about old credentials after days"
2013-12-24 07:50:36 +08:00
2014-07-14 15:03:00 +08:00
email_token_valid_hours: "Forgot password / activate account tokens are valid for (n) hours."
2014-07-02 07:08:25 +08:00
2014-10-06 06:36:56 +08:00
enable_badges: "Enable the badge system"
max_favorite_badges: "Maximum number of badges that user can select"
enable_whispers: "Allow staff private communication within topics."
2014-03-05 20:52:20 +08:00
allow_index_in_robots_txt: "Specify in robots.txt that this site is allowed to be indexed by web search engines. In exceptional cases you can permanently <a href='%{base_path}/admin/customize/robots'>override robots.txt</a>."
blocked_email_domains: "A pipe-delimited list of email domains that users are not allowed to register accounts with. Example: mailinator.com|trashmail.net"
allowed_email_domains: "A pipe-delimited list of email domains that users MUST register accounts with. WARNING: Users with email domains other than those listed will not be allowed!"
normalize_emails: "Check if normalized email is unique. Normalized email removes all dots from the username and everything between + and @ symbols."
auto_approve_email_domains: "Users with email addresses from this list of domains will be automatically approved."
hide_email_address_taken: "Don't inform users that an account exists with a given email address during signup or during forgot password flow. Require full email for 'forgotten password' requests."
log_out_strict: "When logging out, log out ALL sessions for the user on all devices"
version_checks: "Ping the Discourse Hub for version updates and show new version messages on the <a href='%{base_path}/admin' target='_blank'>/admin</a> dashboard"
2014-07-14 15:03:00 +08:00
new_version_emails: "Send an email to the contact_email address when a new version of Discourse is available."
invite_expiry_days: "How long user invitation keys are valid, in days"
2013-02-06 03:16:51 +08:00
2019-04-12 08:22:20 +08:00
invite_only: "All new users must be explicitly invited by trusted users or staff. Public registration is disabled."
2013-06-06 02:06:05 +08:00
2014-07-14 15:03:00 +08:00
login_required: "Require authentication to read content on this site, disallow anonymous access."
2017-02-08 02:08:35 +08:00
min_username_length: "Minimum username length in characters. WARNING: if any existing users or groups have names shorter than this, your site will break!"
max_username_length: "Maximum username length in characters. WARNING: if any existing users or groups have names longer than this, your site will break!"
unicode_usernames: "Allow usernames and group names to contain Unicode letters and numbers."
allowed_unicode_username_characters: "Regular expression to allow only some Unicode characters within usernames. ASCII letters and numbers will always be allowed and don't need to be included in the allowlist."
2017-02-28 04:28:56 +08:00
reserved_usernames: "Usernames for which signup is not allowed. Wildcard symbol * can be used to match any character zero or more times."
min_password_length: "Minimum password length."
min_admin_password_length: "Minimum password length for Admin."
password_unique_characters: "Minimum number of unique characters that a password must have."
2014-07-14 15:03:00 +08:00
block_common_passwords: "Don't allow passwords that are in the 10,000 most common passwords."
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
auth_skip_create_confirm: When signing up via external auth, skip the create account popup. Best used alongside auth_overrides_email, auth_overrides_username and auth_overrides_name.
auth_immediately: "Automatically redirect to the external login system without user interaction. This only takes effect when login_required is true, and there is only one external authentication method"
enable_discourse_connect: "Enable sign on via DiscourseConnect (formerly 'Discourse SSO') (WARNING: USERS' EMAIL ADDRESSES *MUST* BE VALIDATED BY THE EXTERNAL SITE!)"
verbose_discourse_connect_logging: "Log verbose DiscourseConnect related diagnostics to <a href='%{base_path}/logs' target='_blank'>/logs</a>"
enable_discourse_connect_provider: "Implement DiscourseConnect (formerly 'Discourse SSO') provider protocol at the /session/sso_provider endpoint, requires discourse_connect_provider_secrets to be set"
discourse_connect_url: "URL of DiscourseConnect endpoint (must include http:// or https://)"
discourse_connect_secret: "Secret string used to cryptographically authenticate DiscourseConnect information, be sure it is 10 characters or longer"
discourse_connect_provider_secrets: "A list of domain-secret pairs that are using DiscourseConnect. Make sure DiscourseConnect secret is 10 characters or longer. Wildcard symbol * can be used to match any domain or only a part of it (e.g. *.example.com)."
discourse_connect_overrides_bio: "Overrides user bio in user profile and prevents user from changing it"
discourse_connect_overrides_groups: "Synchronize all manual group membership with groups specified in the groups attribute (WARNING: if you do not specify groups all manual group membership will be cleared for user)"
auth_overrides_email: "Overrides local email with external site email on every login, and prevent local changes. Applies to all authentication providers. (WARNING: discrepancies can occur due to normalization of local emails)"
auth_overrides_username: "Overrides local username with external site username on every login, and prevent local changes. Applies to all authentication providers. (WARNING: discrepancies can occur due to differences in username length/requirements)"
auth_overrides_name: "Overrides local full name with external site full name on every login, and prevent local changes. Applies to all authentication providers."
discourse_connect_overrides_avatar: "Overrides user avatar with value from DiscourseConnect payload. If enabled, users will not be allowed to upload avatars on Discourse."
discourse_connect_overrides_location: "Overrides user location with value from DiscourseConnect payload and prevent local changes."
discourse_connect_overrides_website: "Overrides user website with value from DiscourseConnect payload and prevent local changes."
discourse_connect_overrides_profile_background: "Overrides user profile background with value from DiscourseConnect payload."
discourse_connect_overrides_card_background: "Overrides user card background with value from DiscourseConnect payload."
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
discourse_connect_not_approved_url: "Redirect unapproved DiscourseConnect accounts to this URL"
discourse_connect_allows_all_return_paths: "Do not restrict the domain for return_paths provided by DiscourseConnect (by default return path must be on current site)"
enable_local_logins: "Enable local username and password login based accounts. WARNING: if disabled, you may be unable to log in if you have not previously configured at least one alternate login method."
2018-03-23 06:27:07 +08:00
enable_local_logins_via_email: "Allow users to request a one-click login link to be sent to them via email."
allow_new_registrations: "Allow new user registrations. Uncheck this to prevent anyone from creating a new account."
enable_signup_cta: "Show a notice to returning anonymous users prompting them to sign up for an account."
2018-10-11 04:53:02 +08:00
enable_google_oauth2_logins: "Enable Google Oauth2 authentication. This is the method of authentication that Google currently supports. Requires key and secret. See <a href='https://meta.discourse.org/t/15858' target='_blank'>Configuring Google login for Discourse</a>."
google_oauth2_client_id: "Client ID of your Google application."
google_oauth2_client_secret: "Client secret of your Google application."
2018-10-11 04:53:02 +08:00
google_oauth2_prompt: "An optional space-delimited list of string values that specifies whether the authorization server prompts the user for reauthentication and consent. See <a href='https://developers.google.com/identity/protocols/OpenIDConnect#prompt' target='_blank'>https://developers.google.com/identity/protocols/OpenIDConnect#prompt</a> for the possible values."
google_oauth2_hd: "An optional Google Apps Hosted domain that the sign-in will be limited to. See <a href='https://developers.google.com/identity/protocols/OpenIDConnect#hd-param' target='_blank'>https://developers.google.com/identity/protocols/OpenIDConnect#hd-param</a> for more details."
google_oauth2_hd_groups: "(experimental) Retrieve users' Google groups on the hosted domain on authentication. Retrieved Google groups can be used to grant automatic Discourse group membership (see group settings)."
2018-10-11 04:53:02 +08:00
enable_twitter_logins: "Enable Twitter authentication, requires twitter_consumer_key and twitter_consumer_secret. See <a href='https://meta.discourse.org/t/13395' target='_blank'>Configuring Twitter login (and rich embeds) for Discourse</a>."
twitter_consumer_key: "Consumer key for Twitter authentication, registered at <a href='https://developer.twitter.com/apps' target='_blank'>https://developer.twitter.com/apps</a>"
twitter_consumer_secret: "Consumer secret for Twitter authentication, registered at <a href='https://developer.twitter.com/apps' target='_blank'>https://developer.twitter.com/apps</a>"
2013-02-06 03:16:51 +08:00
2018-10-11 04:53:02 +08:00
enable_facebook_logins: "Enable Facebook authentication, requires facebook_app_id and facebook_app_secret. See <a href='https://meta.discourse.org/t/13394' target='_blank'>Configuring Facebook login for Discourse</a>."
facebook_app_id: "App id for Facebook authentication and sharing, registered at <a href='https://developers.facebook.com/apps/' target='_blank'>https://developers.facebook.com/apps</a>"
2018-10-11 04:53:02 +08:00
facebook_app_secret: "App secret for Facebook authentication, registered at <a href='https://developers.facebook.com/apps/' target='_blank'>https://developers.facebook.com/apps</a>"
2013-02-06 03:16:51 +08:00
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
enable_github_logins: "Enable GitHub authentication, requires github_client_id and github_client_secret. See <a href='https://meta.discourse.org/t/13745' target='_blank'>Configuring GitHub login for Discourse</a>."
github_client_id: "Client id for GitHub authentication, registered at <a href='https://github.com/settings/developers/' target='_blank'>https://github.com/settings/developers</a>"
github_client_secret: "Client secret for GitHub authentication, registered at <a href='https://github.com/settings/developers/' target='_blank'>https://github.com/settings/developers</a>"
2013-02-06 03:16:51 +08:00
2019-10-31 00:56:25 +08:00
enable_discord_logins: "Allow users to authenticate using Discord?"
discord_client_id: 'Discord Client ID (need one? visit <a href="https://discordapp.com/developers/applications/me">the Discord developer portal</a>)'
2019-10-31 00:56:25 +08:00
discord_secret: "Discord Secret Key"
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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 <a href="https://meta.discourse.org/t/configuring-discord-login-for-discourse/127129">here</a>. 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 disabled unless you plan to restore a backup"
maximum_backups: "The maximum amount of backups to keep on disk. Older backups are automatically deleted"
automatic_backups_enabled: "Run automatic backups as defined in backup frequency"
2018-02-28 04:41:37 +08:00
backup_frequency: "The number of days between backups."
s3_backup_bucket: "The remote bucket to hold backups. WARNING: Make sure it is a private bucket."
s3_endpoint: "The endpoint can be modified to backup to an S3 compatible service like DigitalOcean Spaces or Minio. WARNING: Leave blank if using AWS S3."
s3_configure_tombstone_policy: "Enable automatic deletion policy for tombstone uploads. IMPORTANT: If disabled, no space will be reclaimed after uploads are deleted."
s3_disable_cleanup: "Prevent removal of old backups from S3 when there are more backups than the maximum allowed."
enable_s3_inventory: "Generate reports and verify uploads using Amazon S3 inventory. IMPORTANT: requires valid S3 credentials (both access key id & secret access key)."
backup_time_of_day: "Time of day UTC when the backup should occur."
backup_with_uploads: "Include uploads in scheduled backups. Disabling this will only backup the database."
backup_location: "Location where backups are stored. IMPORTANT: S3 requires valid S3 credentials entered in Files settings."
backup_gzip_compression_level_for_uploads: "Gzip compression level used for compressing uploads."
include_thumbnails_in_backups: "Include generated thumbnails in backups. Disabling this will make backups smaller, but requires a rebake of all posts after a restore."
active_user_rate_limit_secs: "How frequently we update the 'last_seen_at' field, in seconds"
2014-08-27 12:12:11 +08:00
verbose_localization: "Show extended localization tips in the UI"
previous_visit_timeout_hours: "How long a visit lasts before we consider it the 'previous' visit, in hours"
2013-02-06 03:16:51 +08:00
top_topics_formula_log_views_multiplier: "value of log views multiplier (n) in top topics formula: `log(views_count) * (n) + op_likes_count * 0.5 + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
top_topics_formula_first_post_likes_multiplier: "value of first post likes multiplier (n) in top topics formula: `log(views_count) * 2 + op_likes_count * (n) + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
top_topics_formula_least_likes_per_post_multiplier: "value of least likes per post multiplier (n) in top topics formula: `log(views_count) * 2 + op_likes_count * 0.5 + LEAST(likes_count / posts_count, (n)) + 10 + log(posts_count)`"
enable_safe_mode: "Allow users to enter safe mode to debug plugins."
2014-07-14 15:03:00 +08:00
rate_limit_create_topic: "After creating a topic, users must wait (n) seconds before creating another topic."
rate_limit_create_post: "After posting, users must wait (n) seconds before creating another post."
rate_limit_new_user_create_topic: "After creating a topic, new users must wait (n) seconds before creating another topic."
rate_limit_new_user_create_post: "After posting, new users must wait (n) seconds before creating another post."
2013-02-06 03:16:51 +08:00
2014-07-14 15:03:00 +08:00
max_likes_per_day: "Maximum number of likes per user per day."
max_flags_per_day: "Maximum number of flags per user per day."
max_bookmarks_per_day: "Maximum number of bookmarks per user per day."
max_edits_per_day: "Maximum number of edits per user per day."
max_topics_per_day: "Maximum number of topics a user can create per day."
max_personal_messages_per_day: "Maximum number of new personal message topics a user can create per day."
max_invites_per_day: "Maximum number of invites a user can send per day."
2015-05-13 15:04:05 +08:00
max_topic_invitations_per_day: "Maximum number of topic invitations a user can send per day."
2013-02-06 03:16:51 +08:00
max_logins_per_ip_per_hour: "Maximum number of logins allowed per IP address per hour"
max_logins_per_ip_per_minute: "Maximum number of logins allowed per IP address per minute"
max_post_deletions_per_minute: "Maximum number of posts a user can delete per minute. Set to 0 to disable post deletions."
max_post_deletions_per_day: "Maximum number of posts a user can delete per day. Set to 0 to disable post deletions."
invite_link_max_redemptions_limit: "Maximum redemptions allowed for invite links can't be more than this value."
invite_link_max_redemptions_limit_users: "Maximum redemptions allowed for invite links generated by regular users can't be more than this value."
alert_admins_if_errors_per_minute: "Number of errors per minute in order to trigger an admin alert. A value of 0 disables this feature. NOTE: requires restart."
alert_admins_if_errors_per_hour: "Number of errors per hour in order to trigger an admin alert. A value of 0 disables this feature. NOTE: requires restart."
categories_topics: "Number of topics to show in /categories page. If set to 0, it will automatically try to find a value to keep the two columns symmetrical (categories and topics)."
2014-07-14 15:03:00 +08:00
suggested_topics: "Number of suggested topics shown at the bottom of a topic."
limit_suggested_to_category: "Only show topics from the current category in suggested topics."
suggested_topics_max_days_old: "Suggested topics should not be more than n days old."
suggested_topics_unread_max_days_old: "Suggested unread topics should not be more than n days old."
2013-02-06 03:16:51 +08:00
2014-07-14 15:03:00 +08:00
clean_up_uploads: "Remove orphan unreferenced uploads to prevent illegal hosting. WARNING: you may want to back up of your /uploads directory before enabling this setting."
2013-11-28 05:01:41 +08:00
clean_orphan_uploads_grace_period_hours: "Grace period (in hours) before an orphan upload is removed."
purge_deleted_uploads_grace_period_days: "Grace period (in days) before a deleted upload is erased."
purge_unactivated_users_grace_period_days: "Grace period (in days) before a user who has not activated their account is deleted. Set to 0 to never purge unactivated users."
enable_s3_uploads: "Place uploads on Amazon S3 storage. IMPORTANT: requires valid S3 credentials (both access key id & secret access key)."
s3_use_iam_profile: 'Use an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html">AWS EC2 instance profile</a> to grant access to the S3 bucket. NOTE: enabling this requires Discourse to be running in an appropriately-configured EC2 instance, and overrides the "s3 access key id" and "s3 secret access key" settings.'
s3_upload_bucket: "The Amazon S3 bucket name that files will be uploaded into. WARNING: must be lowercase, no periods, no underscores."
2019-03-16 17:03:50 +08:00
s3_access_key_id: "The Amazon S3 access key id that will be used to upload images, attachments, and backups."
s3_secret_access_key: "The Amazon S3 secret access key that will be used to upload images, attachments, and backups."
s3_region: "The Amazon S3 region name that will be used to upload images and backups."
s3_cdn_url: "The CDN URL to use for all s3 assets (for example: https://cdn.somewhere.com). WARNING: after changing this setting you must rebake all old posts."
2013-02-06 03:16:51 +08:00
avatar_sizes: "List of automatically generated avatar sizes."
external_system_avatars_enabled: "Use external system avatars service."
external_system_avatars_url: "URL of the external system avatars service. Allowed substitutions are {username} {first_letter} {color} {size}"
external_emoji_url: "URL of the external service for emoji images. Leave blank to disable."
use_site_small_logo_as_system_avatar: "Use the site's small logo instead of the system user's avatar. Requires the logo to be present."
restrict_letter_avatar_colors: "A list of 6-digit hexadecimal color values to be used for letter avatar background."
enable_listing_suspended_users_on_search: "Enable regular users to find suspended users."
selectable_avatars_mode: "Allow users to select an avatar from the selectable_avatars list and limit custom avatar uploads to the selected trust level."
2018-07-18 18:57:43 +08:00
selectable_avatars: "List of avatars users can choose from."
allow_all_attachments_for_group_messages: "Allow all email attachments for group messages."
png_to_jpg_quality: "Quality of the converted JPG file (1 is lowest quality, 99 is best quality, 100 to disable)."
recompress_original_jpg_quality: "Quality of uploaded image files (1 is lowest quality, 99 is best quality, 100 to disable)."
image_preview_jpg_quality: "Quality of resized image files (1 is lowest quality, 99 is best quality, 100 to disable)."
allow_staff_to_upload_any_file_in_pm: "Allow staff members to upload any files in PM."
strip_image_metadata: "Strip image metadata."
composer_media_optimization_image_enabled: "Enables client-side media optimization of uploaded image files."
composer_media_optimization_image_bytes_optimization_threshold: "Minimum image file size to trigger client-side optimization"
composer_media_optimization_image_resize_dimensions_threshold: "Minimum image width to trigger client-side resize"
composer_media_optimization_image_resize_width_target: "Images with widths larger than `composer_media_optimization_image_dimensions_resize_threshold` will be resized to this width. Must be >= than `composer_media_optimization_image_dimensions_resize_threshold`."
composer_media_optimization_image_encode_quality: "JPEG encode quality used in the re-encode process."
min_ratio_to_crop: "Ratio used to crop tall images. Enter the result of width / height."
simultaneous_uploads: "Maximum number of files that can be dragged & dropped in the composer"
2014-07-14 15:03:00 +08:00
default_invitee_trust_level: "Default trust level (0-4) for invited users."
2015-04-18 06:29:40 +08:00
default_trust_level: "Default trust level (0-4) for all new users. WARNING! Changing this will put you at serious risk for spam."
2013-02-06 03:16:51 +08:00
tl1_requires_topics_entered: "How many topics a new user must enter before promotion to trust level 1."
tl1_requires_read_posts: "How many posts a new user must read before promotion to trust level 1."
tl1_requires_time_spent_mins: "How many minutes a new user must read posts before promotion to trust level 1."
tl2_requires_topics_entered: "How many topics a user must enter before promotion to trust level 2."
tl2_requires_read_posts: "How many posts a user must read before promotion to trust level 2."
tl2_requires_time_spent_mins: "How many minutes a user must read posts before promotion to trust level 2."
tl2_requires_days_visited: "How many days a user must visit the site before promotion to trust level 2."
tl2_requires_likes_received: "How many likes a user must receive before promotion to trust level 2."
tl2_requires_likes_given: "How many likes a user must cast before promotion to trust level 2."
tl2_requires_topic_reply_count: "How many topics user must reply to before promotion to trust level 2."
2016-03-16 17:01:50 +08:00
tl3_time_period: "Trust Level 3 requirements time period (in days)"
tl3_requires_days_visited: "Minimum number of days that a user needs to have visited the site in the last (tl3 time period) days to qualify for promotion to trust level 3. Set higher than tl3 time period to disable promotions to tl3. (0 or higher)"
tl3_requires_topics_replied_to: "Minimum number of topics a user needs to have replied to in the last (tl3 time period) days to qualify for promotion to trust level 3. (0 or higher)"
tl3_requires_topics_viewed: "The percentage of topics created in the last (tl3 time period) days that a user needs to have viewed to qualify for promotion to trust level 3. (0 to 100)"
tl3_requires_topics_viewed_cap: "The maximum required number of topics viewed in the last (tl3 time period) days."
2016-03-16 17:01:50 +08:00
tl3_requires_posts_read: "The percentage of posts created in the last (tl3 time period) days that a user needs to have viewed to qualify for promotion to trust level 3. (0 to 100)"
tl3_requires_posts_read_cap: "The maximum required number of posts read in the last (tl3 time period) days."
tl3_requires_topics_viewed_all_time: "The minimum total number of topics a user must have viewed to qualify for trust level 3."
tl3_requires_posts_read_all_time: "The minimum total number of posts a user must have read to qualify for trust level 3."
2016-03-16 17:01:50 +08:00
tl3_requires_max_flagged: "User must not have had more than x posts flagged by x different users in the last (tl3 time period) days to qualify for promotion to trust level 3, where x is this setting's value. (0 or higher)"
tl3_promotion_min_duration: "The minimum number of days that a promotion to trust level 3 lasts before a user can be demoted back to trust level 2."
2016-03-16 17:01:50 +08:00
tl3_requires_likes_given: "The minimum number of likes that must be given in the last (tl3 time period) days to qualify for promotion to trust level 3."
tl3_requires_likes_received: "The minimum number of likes that must be received in the last (tl3 time period) days to qualify for promotion to trust level 3."
2014-09-05 04:22:17 +08:00
tl3_links_no_follow: "Do not remove rel=nofollow from links posted by trust level 3 users."
trusted_users_can_edit_others: "Allow users with high trust levels to edit content from other users"
min_trust_to_create_topic: "The minimum trust level required to create a new topic."
allow_flagging_staff: "If enabled, users can flag posts from staff accounts."
2014-05-13 20:53:11 +08:00
min_trust_to_edit_wiki_post: "The minimum trust level required to edit post marked as wiki."
min_trust_to_edit_post: "The minimum trust level required to edit posts."
min_trust_to_allow_self_wiki: "The minimum trust level required to make user's own post wiki."
min_trust_to_send_messages: "The minimum trust level required to create new personal messages."
min_trust_to_send_email_messages: "The minimum trust level required to send personal messages via email."
min_trust_to_flag_posts: "The minimum trust level required to flag posts"
min_trust_to_post_links: "The minimum trust level required to include links in posts"
min_trust_to_post_embedded_media: "The minimum trust level required to embed media items in a post"
min_trust_level_to_allow_profile_background: "The minimum trust level required to upload a profile background"
min_trust_level_to_allow_user_card_background: "The minimum trust level required to upload a user card background"
2020-10-22 21:36:56 +08:00
min_trust_level_to_allow_invite: "The minimum trust level required to invite users"
min_trust_level_to_allow_ignore: "The minimum trust level required to ignore users"
allowed_link_domains: "Domains that users may link to even if they don't have the appropriate trust level to post links"
2014-07-14 15:03:00 +08:00
newuser_max_links: "How many links a new user can add to a post."
newuser_max_embedded_media: "How many embedded media items a new user can add to a post."
2014-07-14 15:03:00 +08:00
newuser_max_attachments: "How many attachments a new user can add to a post."
newuser_max_mentions_per_post: "Maximum number of @name notifications a new user can use in a post."
newuser_max_replies_per_topic: "Maximum number of replies a new user can make in a single topic until someone replies to them."
max_mentions_per_post: "Maximum number of @name notifications anyone can use in a post."
max_users_notified_per_group_mention: "Maximum number of users that may receive a notification if a group is mentioned (if threshold is met no notifications will be raised)"
enable_mentions: "Allow users to mention other users."
here_mention: "Name used for a @mention to allow privileged users to notify up to 'max_here_mentioned' people participating in the topic. Must not be an existing username."
max_here_mentioned: "Maximum number of mentioned people by @here."
min_trust_level_for_here_mention: "The minimum trust level allowed to mention @here."
2013-02-06 03:16:51 +08:00
2014-07-14 15:03:00 +08:00
create_thumbnails: "Create thumbnails and lightbox images that are too large to fit in a post."
2013-02-19 14:57:14 +08:00
2014-07-14 15:03:00 +08:00
email_time_window_mins: "Wait (n) minutes before sending any notification emails, to give users a chance to edit and finalize their posts."
personal_email_time_window_seconds: "Wait (n) seconds before sending any personal message notification emails, to give users a chance to edit and finalize their messages."
2014-07-14 15:03:00 +08:00
email_posts_context: "How many prior replies to include as context in notification emails."
flush_timings_secs: "How frequently we flush timing data to the server, in seconds."
title_max_word_length: "The maximum allowed word length, in characters, in a topic title."
2014-07-14 15:03:00 +08:00
title_min_entropy: "The minimum entropy (unique characters, non-english count for more) required for a topic title."
body_min_entropy: "The minimum entropy (unique characters, non-english count for more) required for a post body."
allow_uppercase_posts: "Allow all caps in a topic title or a post body."
max_consecutive_replies: "Number of posts a user has to make in a row in a topic before being prevented from adding another reply."
enable_filtered_replies_view: '"(n) replies" button collapses all other posts and only shows the current post and its replies.'
2018-10-11 04:53:02 +08:00
title_fancy_entities: "Convert common ASCII characters to fancy HTML entities in topic titles, ala SmartyPants <a href='https://daringfireball.net/projects/smartypants/' target='_blank'>https://daringfireball.net/projects/smartypants/</a>"
2013-02-26 00:42:20 +08:00
2014-07-14 15:03:00 +08:00
min_title_similar_length: "The minimum length of a title before it will be checked for similar topics."
desktop_category_page_style: "Visual style for the /categories page."
2014-07-14 15:03:00 +08:00
category_colors: "A list of hexadecimal color values allowed for categories."
category_style: "Visual style for category badges."
default_dark_mode_color_scheme_id: "The color scheme used when in dark mode."
dark_mode_none: "None"
2013-10-16 08:31:54 +08:00
max_image_size_kb: "The maximum image upload size in kB. This must be configured in nginx (client_max_body_size) / apache or proxy as well. Images larger than this and smaller than client_max_body_size will be resized to fit on upload."
2014-07-14 15:03:00 +08:00
max_attachment_size_kb: "The maximum attachment files upload size in kB. This must be configured in nginx (client_max_body_size) / apache or proxy as well."
authorized_extensions: "A list of file extensions allowed for upload (use '*' to enable all file types)"
authorized_extensions_for_staff: "A list of file extensions allowed for upload for staff users in addition to the list defined in the `authorized_extensions` site setting. (use '*' to enable all file types)"
theme_authorized_extensions: "A list of file extensions allowed for theme uploads (use '*' to enable all file types)"
2014-07-14 15:03:00 +08:00
max_similar_results: "How many similar topics to show above the editor when composing a new topic. Comparison is based on title and body."
2013-03-17 08:24:52 +08:00
max_image_megapixels: "Maximum number of megapixels allowed for an image. Images with a higher number of megapixels will be rejected."
2013-04-10 17:00:50 +08:00
title_prettify: "Prevent common title typos and errors, including all caps, lowercase first character, multiple ! and ?, extra . at end, etc."
title_remove_extraneous_space: "Remove leading whitespaces in front of the end punctuation."
2013-04-10 17:00:50 +08:00
automatic_topic_heat_values: 'Automatically update the "topic views heat" and "topic post like heat" settings based on site activity.'
2014-08-19 05:03:32 +08:00
topic_views_heat_low: "After this many views, the views field is slightly highlighted."
topic_views_heat_medium: "After this many views, the views field is moderately highlighted."
topic_views_heat_high: "After this many views, the views field is strongly highlighted."
cold_age_days_low: "After this many days of conversation, the last activity date is slightly dimmed."
cold_age_days_medium: "After this many days of conversation, the last activity date is moderately dimmed."
cold_age_days_high: "After this many days of conversation, the last activity date is strongly dimmed."
2014-08-19 05:03:32 +08:00
history_hours_low: "A post edited within this many hours has the edit indicator slightly highlighted"
history_hours_medium: "A post edited within this many hours has the edit indicator moderately highlighted."
history_hours_high: "A post edited within this many hours has the edit indicator strongly highlighted."
2014-08-19 05:03:32 +08:00
topic_post_like_heat_low: "After the likes:post ratio exceeds this ratio, the post count field is slightly highlighted."
topic_post_like_heat_medium: "After the likes:post ratio exceeds this ratio, the post count field is moderately highlighted."
2014-08-19 05:10:04 +08:00
topic_post_like_heat_high: "After the likes:post ratio exceeds this ratio, the post count field is strongly highlighted."
faq_url: "If you have a FAQ hosted elsewhere that you want to use, provide the full URL here."
tos_url: "If you have a Terms of Service document hosted elsewhere that you want to use, provide the full URL here."
privacy_policy_url: "If you have a Privacy Policy document hosted elsewhere that you want to use, provide the full URL here."
log_anonymizer_details: "Whether to keep a user's details in the log after being anonymized. When complying to GDPR you'll need to turn this off."
newuser_spam_host_threshold: "How many times a new user can post a link to the same host within their `newuser_spam_host_threshold` posts before being considered spam."
allowed_spam_host_domains: "A list of domains excluded from spam host testing. New users will never be restricted from creating posts with links to these domains."
staff_like_weight: "How much weight to give staff likes (non-staff likes have a weight of 1.)"
2015-09-15 15:55:23 +08:00
topic_view_duration_hours: "Count a new topic view once per IP/User every N hours"
2015-09-14 15:51:17 +08:00
user_profile_view_duration_hours: "Count a new user profile view once per IP/User every N hours"
2014-07-14 15:03:00 +08:00
levenshtein_distance_spammer_emails: "When matching spammer emails, number of characters difference that will still allow a fuzzy match."
max_new_accounts_per_registration_ip: "If there are already (n) trust level 0 accounts from this IP (and none is a staff member or at TL2 or higher), stop accepting new signups from that IP. Set to 0 to disable the limit."
min_ban_entries_for_roll_up: "When clicking the Roll up button, will create a new subnet ban entry if there are at least (N) entries."
max_age_unmatched_emails: "Delete unmatched screened email entries after (N) days."
max_age_unmatched_ips: "Delete unmatched screened IP entries after (N) days."
num_flaggers_to_close_topic: "Minimum number of unique flaggers that is required to automatically pause a topic for intervention"
num_hours_to_close_topic: "Number of hours to pause a topic for intervention."
auto_respond_to_flag_actions: "Enable automatic reply when disposing a flag."
min_first_post_typing_time: "Minimum amount of time in milliseconds a user must type during first post, if threshold is not met post will automatically enter the needs approval queue. Set to 0 to disable (not recommended)"
2017-11-11 01:18:08 +08:00
auto_silence_fast_typers_on_first_post: "Automatically silence users that do not meet min_first_post_typing_time"
auto_silence_fast_typers_max_trust_level: "Maximum trust level to auto silence fast typers"
auto_silence_first_post_regex: "Case insensitive regex that if passed will cause first post by user to be silenced and sent to approval queue. Example: raging|a[bc]a , will cause all posts containing raging or aba or aca to be silenced on first. Only applies to first post. DEPRECATED: Use Silence Watched Words instead."
reviewable_claiming: "Does reviewable content need to be claimed before it can be acted upon?"
reviewable_default_topics: "Show reviewable content grouped by topic by default"
reviewable_default_visibility: "Don't show reviewable items unless they meet this priority"
Fix i18n issues reported on Crowdin (#13191) * Pluralize `js.topics.bulk.dismiss_new_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57320 * Pluralize `js.topics.bulk.dismiss_read_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57316 * Pluralize `js.topics.bulk.dismiss_button_with_selected` * Replaces concatenated string used by `js.topic.suggest_create_topic` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#41834 * Less confusing `admin_js.admin.watched_words.test.modal_title` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-sv#44992 * Delete unused `backup.location.*` keys This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#46330 * Replace "reviewable" with "reviewable items" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#56952 * Remove "ago" from `emails.incoming.missing_attachment` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-sv#46038 * Remove "/Posts" from `js.keyboard_shortcuts_help.application.dismiss_new_posts` Because the shortcut doesn't do anything to posts anymore. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-de#43180 * Pluralize `user.cannot_delete_has_posts` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-he#57490
2021-06-22 17:29:35 +08:00
reviewable_low_priority_threshold: "The priority filter hides reviewable items that don't meet this score unless the '(any)' filter is used."
high_trust_flaggers_auto_hide_posts: "New user posts are automatically hidden after being flagged as spam by a TL3+ user"
cooldown_hours_until_reflag: "How much time users will have to wait until they are able to reflag a post"
slow_mode_prevents_editing: "Does 'Slow Mode' prevent editing, after editing_grace_period?"
2014-07-14 15:03:00 +08:00
reply_by_email_enabled: "Enable replying to topics via email."
reply_by_email_address: "Template for reply by email incoming email address, for example: %%{reply_key}@reply.example.com or replies+%%{reply_key}@example.com"
alternative_reply_by_email_addresses: "List of alternative templates for reply by email incoming email addresses. Example: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Use HTML instead of text for incoming email."
strip_incoming_email_lines: "Remove leading and trailing whitespaces from each line of incoming emails."
disable_emails: "Prevent Discourse from sending any kind of emails. Select 'yes' to disable emails for all users. Select 'non-staff' to disable emails for non-staff users only."
2014-09-13 13:26:31 +08:00
strip_images_from_short_emails: "Strip images from emails having size less than 2800 Bytes"
short_email_length: "Short email length in Bytes"
display_name_on_email_from: "Display full names on email from fields"
2014-09-13 13:26:31 +08:00
2016-01-20 17:25:25 +08:00
unsubscribe_via_email: "Allow users to unsubscribe from emails by sending an email with 'unsubscribe' in the subject or body"
2016-06-01 03:28:23 +08:00
unsubscribe_via_email_footer: "Attach an unsubscribe via email mailto: link to the footer of sent emails"
2016-01-20 17:25:25 +08:00
delete_email_logs_after_days: "Delete email logs after (N) days. 0 to keep indefinitely"
disallow_reply_by_email_after_days: "Disallow reply by email after (N) days. 0 to keep indefinitely"
max_emails_per_day_per_user: "Maximum number of emails to send users per day. 0 to disable the limit"
2016-03-24 01:56:03 +08:00
enable_staged_users: "Automatically create staged users when processing incoming emails."
maximum_staged_users_per_email: "Maximum number of staged users created when processing an incoming email."
auto_generated_allowlist: "List of email addresses that won't be checked for auto-generated content. Example: foo@bar.com|discourse@bar.com"
block_auto_generated_emails: "Block incoming emails identified as being auto generated."
ignore_by_title: "Ignore incoming emails based on their title."
mailgun_api_key: "Mailgun Secret API key used to verify webhook messages."
soft_bounce_score: "Bounce score added to the user when a temporary bounce happens."
hard_bounce_score: "Bounce score added to the user when a permanent bounce happens."
bounce_score_threshold: "Max bounce score before we will stop emailing a user."
reset_bounce_score_after_days: "Automatically reset bounce score after X days."
blocked_attachment_content_types: "List of keywords used to blocklist attachments based on the content type."
blocked_attachment_filenames: "List of keywords used to blocklist attachments based on the filename."
forwarded_emails_behaviour: "How to treat a forwarded email to Discourse"
always_show_trimmed_content: "Always show trimmed part of incoming emails. WARNING: might reveal email addresses."
trim_incoming_emails: "Trim part of the incoming emails that isn't relevant."
private_email: "Don't include content from posts or topics in email title or email body. NOTE: also disables digest emails."
email_total_attachment_size_limit_kb: "Max total size of files attached to outgoing emails in kB. Set to 0 to disable sending of attachments."
post_excerpts_in_emails: "In notification emails, always send excerpts instead of full posts"
raw_email_max_length: "How many characters should be stored for incoming email."
raw_rejected_email_max_length: "How many characters should be stored for rejected incoming email."
delete_rejected_email_after_days: "Delete rejected emails older than (n) days."
manual_polling_enabled: "Push emails using the API for email replies."
2014-08-29 01:45:40 +08:00
pop3_polling_enabled: "Poll via POP3 for email replies."
pop3_polling_ssl: "Use SSL while connecting to the POP3 server. (Recommended)"
pop3_polling_openssl_verify: "Verify TLS server certificate (Default: enabled)"
2014-08-29 01:45:40 +08:00
pop3_polling_period_mins: "The period in minutes between checking the POP3 account for email. NOTE: requires restart."
pop3_polling_port: "The port to poll a POP3 account on."
pop3_polling_host: "The host to poll for email via POP3."
pop3_polling_username: "The username for the POP3 account to poll for email."
pop3_polling_password: "The password for the POP3 account to poll for email."
2018-01-05 00:34:14 +08:00
pop3_polling_delete_from_server: "Delete emails from server. NOTE: If you disable this you should manually clean your mail inbox"
log_mail_processing_failures: "Log all email processing failures to <a href='%{base_path}/logs' target='_blank'>/logs</a>"
email_in: 'Allow users to post new topics via email (requires manual or pop3 polling). Configure the addresses in the "Settings" tab of each category.'
2014-07-14 15:03:00 +08:00
email_in_min_trust: "The minimum trust level a user needs to have to be allowed to post new topics via email."
email_in_authserv_id: "The identifier of the service doing authentication checks on incoming emails. See <a href='https://meta.discourse.org/t/134358'>https://meta.discourse.org/t/134358</a> for instructions on how to configure this."
email_in_spam_header: "The email header to detect spam."
enable_imap: "Enable IMAP for synchronizing group messages."
enable_imap_write: "Enable two-way IMAP synchronization. If disabled, all write-operations on IMAP accounts are disabled."
enable_imap_idle: "Use IMAP IDLE mechanism to wait for new emails."
enable_smtp: "Enable SMTP for sending notifications for group messages."
imap_polling_period_mins: "The period in minutes between checking the IMAP accounts for emails."
imap_polling_old_emails: "The maximum number of old emails (processed) to be updated every time an IMAP box is polled (0 for all)."
imap_polling_new_emails: "The maximum number of new emails (unprocessed) to be updated every time an IMAP box is polled ."
imap_batch_import_email: "The minimum number of new emails that trigger import mode (disables notifications for imported posts)."
2014-07-14 15:03:00 +08:00
email_prefix: "The [label] used in the subject of emails. It will default to 'title' if not set."
email_site_title: "The title of the site used as the sender of emails from the site. Default to 'title' if not set. If your 'title' contains characters that are not allowed in email sender strings, use this setting."
find_related_post_with_key: "Only use the 'reply key' to find the replied-to post. WARNING: disabling this allows user impersonation based on email address."
2014-07-14 15:03:00 +08:00
minimum_topics_similar: "How many topics need to exist before similar topics are presented when composing new topics."
2014-07-14 15:03:00 +08:00
relative_date_duration: "Number of days after posting where post dates will be shown as relative (7d) instead of absolute (20 Feb)."
delete_user_max_post_age: "Don't allow deleting users whose first post is older than (x) days."
delete_all_posts_max: "The maximum number of posts that can be deleted at once with the Delete All Posts button. If a user has more than this many posts, the posts cannot all be deleted at once and the user can't be deleted."
delete_user_self_max_post_count: "The maximum number of posts a user can have while allowing self-service account deletion. Set to -1 to disable self-service account deletion."
username_change_period: "The maximum number of days after registration that accounts can change their username (0 to disallow username change)."
email_editable: "Allow users to change their e-mail address after registration."
2018-10-10 19:11:58 +08:00
logout_redirect: "Location to redirect browser to after logout (eg: https://example.com/logout)"
2015-08-01 05:46:16 +08:00
allow_uploaded_avatars: "Allow users to upload custom profile pictures."
2015-03-03 01:12:19 +08:00
default_avatars: "URLs to avatars that will be used by default for new users until they change them."
2014-07-14 15:03:00 +08:00
automatically_download_gravatars: "Download Gravatars for users upon account creation or email change."
digest_topics: "The maximum number of popular topics to display in the email summary."
digest_posts: "The maximum number of popular posts to display in the email summary."
digest_other_topics: "The maximum number of topics to show in the 'New in topics and categories you follow' section of the email summary."
2016-06-10 08:38:49 +08:00
digest_min_excerpt_length: "Minimum post excerpt in the email summary, in characters."
suppress_digest_email_after_days: "Suppress summary emails for users not seen on the site for more than (n) days."
2016-06-10 08:38:49 +08:00
digest_suppress_categories: "Suppress these categories from summary emails."
disable_digest_emails: "Disable summary emails for all users."
apply_custom_styles_to_digest: "Custom email template and css are applied to summary emails."
2017-10-21 02:50:55 +08:00
email_accent_bg_color: "The accent color to be used as the background of some elements in HTML emails. Enter a color name ('red') or hex value ('#FF0000')."
email_accent_fg_color: "The color of text rendered on the email bg color in HTML emails. Enter a color name ('white') or hex value ('#FFFFFF')."
email_link_color: "The color of links in HTML emails. Enter a color name ('blue') or hex value ('#0000FF')."
2015-08-01 05:46:16 +08:00
detect_custom_avatars: "Whether or not to check that users have uploaded custom profile pictures."
2014-07-14 15:03:00 +08:00
max_daily_gravatar_crawls: "Maximum number of times Discourse will check Gravatar for custom avatars in a day"
public_user_custom_fields: "A list of user custom fields that can be retrieved with the API."
staff_user_custom_fields: "A list of user custom fields that can be retrieved for staff members with the API."
enable_user_directory: "Provide a directory of users for browsing"
enable_group_directory: "Provide a directory of groups for browsing"
enable_category_group_moderation: "Allow groups to moderate content in specific categories"
group_in_subject: "Set %%{optional_pm} in email subject to name of first group in PM, see: <a href='https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801' target='_blank'>Customize subject format for standard emails</a>"
allow_anonymous_posting: "Allow users to switch to anonymous mode"
anonymous_posting_min_trust_level: "Minimum trust level required to enable anonymous posting"
anonymous_account_duration_minutes: "To protect anonymity create a new anonymous account every N minutes for each user. Example: if set to 600, as soon as 600 minutes elapse from last post AND user switches to anon, a new anonymous account is created."
hide_user_profiles_from_public: "Disable user cards, user profiles and user directory for anonymous users."
allow_users_to_hide_profile: "Allow users to hide their profile and presence"
allow_featured_topic_on_user_profiles: "Allow users to feature a link to a topic on their user card and profile."
show_inactive_accounts: "Allow logged in users to browse profiles of inactive accounts."
hide_suspension_reasons: "Don't display suspension reasons publically on user profiles."
2018-01-27 20:51:22 +08:00
log_personal_messages_views: "Log personal message views by Admin for other users/groups."
ignored_users_count_message_threshold: "Notify moderators if a particular user is ignored by this many other users."
ignored_users_message_gap_days: "How long to wait before notifying moderators again about a user who has been ignored by many others."
clean_up_inactive_users_after_days: "Number of days before an inactive user (trust level 0 without any posts) is removed. To disable clean up set to 0."
clean_up_unused_staged_users_after_days: "Number of days before an unused staged user (without any posts) is removed. To disable clean up set to 0."
user_selected_primary_groups: "Allow users to set their own primary group"
max_notifications_per_user: "Maximum amount of notifications per user, if this number is exceeded old notifications will be deleted. Enforced weekly. Set to 0 to disable"
allowed_user_website_domains: "User website will be verified against these domains. Pipe-delimited list."
2014-07-14 15:03:00 +08:00
allow_profile_backgrounds: "Allow users to upload profile backgrounds."
sequential_replies_threshold: "Number of posts a user has to make in a row in a topic before being reminded about too many sequential replies."
get_a_room_threshold: "Number of posts a user has to make to the same person in the same topic before being warned."
enable_mobile_theme: "Mobile devices use a mobile-friendly theme, with the ability to switch to the full site. Disable this if you want to use a custom stylesheet that is fully responsive."
2014-07-14 15:03:00 +08:00
dominating_topic_minimum_percent: "What percentage of posts a user has to make in a topic before being reminded about overly dominating a topic."
2015-06-26 11:33:09 +08:00
disable_avatar_education_message: "Disable education message for changing avatar."
2014-07-14 15:03:00 +08:00
suppress_uncategorized_badge: "Don't show the badge for uncategorized topics in topic lists."
header_dropdown_category_count: "How many categories can be displayed in the header dropdown menu."
permalink_normalizations: "Apply the following regex before matching permalinks, for example: /(topic.*)\\?.*/\\1 will strip query strings from topic routes. Format is regex+string use \\1 etc. to access captures"
global_notice: "Display an URGENT, EMERGENCY, non-dismissible global banner notice to all visitors, change to blank to hide it (HTML allowed)."
disable_system_edit_notifications: "Disables edit notifications by the system user when 'download_remote_images_to_local' is active."
disable_category_edit_notifications: "Disable category edit notifications on topics."
disable_tags_edit_notifications: "Disable tags edit notifications on topics."
notification_consolidation_threshold: "Number of liked or membership request notifications received before the notifications are consolidated into a single one. Set to 0 to disable."
likes_notification_consolidation_window_mins: "Duration in minutes where liked notifications are consolidated into a single notification once the threshold has been reached. The threshold can be configured via `SiteSetting.notification_consolidation_threshold`."
automatically_unpin_topics: "Automatically unpin topics when the user reaches the bottom."
read_time_word_count: "Word count per minute for calculating estimated reading time."
topic_page_title_includes_category: "Topic page <a href='https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title' target='_blank'>title tag</a> includes the category name."
native_app_install_banner_ios: "Displays DiscourseHub app banner on iOS devices to regular users (trust level 1 and up)."
native_app_install_banner_android: "Displays DiscourseHub app banner on Android devices to regular users (trust level 1 and up)."
app_association_android: "Contents of <a href='%{base_path}/.well-known/assetlinks.json'>.well-known/assetlinks.json</a> endpoint, used for Google's Digital Asset Links API."
app_association_ios: "Contents of <a href='%{base_path}/apple-app-site-association'>apple-app-site-association</a> endpoint, used to create Universal Links between this site and iOS apps."
2017-03-10 21:16:00 +08:00
share_anonymized_statistics: "Share anonymized usage statistics."
auto_handle_queued_age: "Automatically handle records that are waiting to be reviewed after this many days. Flags will be ignored. Queued posts and users will be rejected. Set to 0 to disable this feature."
penalty_step_hours: "Default penalties for silencing or suspending users in hours. First offense defaults to the first value, second offense defaults to the second value, etc."
svg_icon_subset: "Add additional FontAwesome 5 icons that you would like to include in your assets. Use prefix 'fa-' for solid icons, 'far-' for regular icons and 'fab-' for brand icons."
2016-08-05 13:12:35 +08:00
max_prints_per_hour_per_user: "Maximum number of /print page impressions (set to 0 to disable)"
full_name_required: "Full name is a required field of a user's profile."
2015-01-30 05:42:15 +08:00
enable_names: "Show the user's full name on their profile, user card, and emails. Disable to hide full name everywhere."
2014-07-14 15:03:00 +08:00
display_name_on_posts: "Show a user's full name on their posts in addition to their @username."
show_time_gap_days: "If two posts are made this many days apart, display the time gap in the topic."
short_progress_text_threshold: "After the number of posts in a topic goes above this number, the progress bar will only show the current post number. If you change the progress bar's width, you may need to change this value."
default_code_lang: "Default programming language syntax highlighting applied to code blocks (auto, nohighlight, ruby, python etc.). This value must also be present in the `highlighted languages` site setting."
2014-08-01 06:14:22 +08:00
warn_reviving_old_topic_age: "When someone starts replying to a topic where the last reply is older than this many days, a warning will be displayed. Disable by setting to 0."
2014-07-14 15:03:00 +08:00
autohighlight_all_code: "Force apply code highlighting to all preformatted code blocks even when they didn't explicitly specify the language."
2018-10-11 04:53:02 +08:00
highlighted_languages: "Included syntax highlighting rules. (Warning: including too many languages may impact performance) see: <a href='https://highlightjs.org/static/demo/' target='_blank'>https://highlightjs.org/static/demo</a> for a demo"
show_copy_button_on_codeblocks: "Add a button to codeblocks to copy the block contents to the user's clipboard."
2014-07-14 15:03:00 +08:00
embed_any_origin: "Allow embeddable content regardless of origin. This is required for mobile apps with static HTML."
embed_topics_list: "Support HTML embedding of topics lists"
embed_set_canonical_url: "Set the canonical URL for embedded topics to the embedded content's URL."
2014-07-14 15:03:00 +08:00
embed_truncate: "Truncate the embedded posts."
embed_unlisted: "Imported topics will be unlisted until a user replies."
embed_support_markdown: "Support Markdown formatting for embedded posts."
allowed_embed_selectors: "A comma separated list of CSS elements that are allowed in embeds."
allowed_href_schemes: "Schemes allowed in links in addition to http and https."
2014-07-14 15:03:00 +08:00
embed_post_limit: "Maximum number of posts to embed."
embed_username_required: "The username for topic creation is required."
2018-05-11 03:24:27 +08:00
notify_about_flags_after: "If there are flags that haven't been handled after this many hours, send a personal message to moderators. Set to 0 to disable."
show_create_topics_notice: "If the site has fewer than 5 public topics, show a notice asking admins to create some topics."
delete_drafts_older_than_n_days: "Delete drafts older than (n) days."
delete_merged_stub_topics_after_days: "Number of days to wait before automatically deleting fully merged stub topics. Set to 0 to never delete stub topics."
bootstrap_mode_min_users: "Minimum number of users required to disable bootstrap mode (set to 0 to disable)"
prevent_anons_from_downloading_files: "Prevent anonymous users from downloading attachments."
secure_media: 'Limits access to ALL uploads (images, video, audio, text, pdfs, zips, and others). If “login required” is enabled, only logged-in users can access uploads. Otherwise, access will be limited only for media uploads in private messages and private categories. WARNING: This setting is complex and requires deep administrative understanding. See <a target="_blank" href="https://meta.discourse.org/t/secure-media-uploads/140017">the secure media topic on Meta</a> for details.'
FEATURE: Allow email image embed with secure media (#10563) This PR introduces a few important changes to secure media redaction in emails. First of all, two new site settings have been introduced: * `secure_media_allow_embed_images_in_emails`: If enabled we will embed secure images in emails instead of redacting them. * `secure_media_max_email_embed_image_size_kb`: The cap to the size of the secure image we will embed, defaulting to 1mb, so the email does not become too big. Max is 10mb. Works in tandem with `email_total_attachment_size_limit_kb`. `Email::Sender` will now attach images to the email based on these settings. The sender will also call `inline_secure_images` in `Email::Styles` after secure media is redacted and attachments are added to replace redaction messages with attached images. I went with attachment and `cid` URLs because base64 image support is _still_ flaky in email clients. All redaction of secure media is now handled in `Email::Styles` and calls out to `PrettyText.strip_secure_media` to do the actual stripping and replacing with placeholders. `app/mailers/group_smtp_mailer.rb` and `app/mailers/user_notifications.rb` no longer do any stripping because they are earlier in the pipeline than `Email::Styles`. Finally the redaction notice has been restyled and includes a link to the media that the user can click, which will show it to them if they have the necessary permissions. ![image](https://user-images.githubusercontent.com/920448/92341012-b9a2c380-f0ff-11ea-860e-b376b4528357.png)
2020-09-10 07:50:16 +08:00
secure_media_allow_embed_images_in_emails: "Allows embedding secure images that would normally be redacted in emails, if their size is smaller than the 'secure media max email embed image size kb' setting."
secure_media_max_email_embed_image_size_kb: "The size cutoff for secure images that will be embedded in emails if the 'secure media allow embed in emails' setting is enabled. Without that setting enabled, this setting has no effect."
2015-04-13 22:50:41 +08:00
slug_generation_method: "Choose a slug generation method. 'encoded' will generate percent encoding string. 'none' will disable slug at all."
2014-12-23 08:12:26 +08:00
enable_emoji: "Enable emoji"
enable_emoji_shortcuts: "Common smiley text such as :) :p :( will be converted to emojis"
2014-12-23 08:12:26 +08:00
emoji_set: "How would you like your emoji?"
emoji_autocomplete_min_chars: "Minimum number of characters required to trigger autocomplete emoji popup"
enable_inline_emoji_translation: "Enables translation for inline emojis (without any space or punctuation before)"
2014-12-23 08:12:26 +08:00
approve_post_count: "The amount of posts from a new or basic user that must be approved"
2015-04-16 00:12:20 +08:00
approve_unless_trust_level: "Posts for users below this trust level must be approved"
approve_new_topics_unless_trust_level: "New topics for users below this trust level must be approved"
approve_unless_staged: "New topics and posts for staged users must be approved"
notify_about_queued_posts_after: "If there are posts that have been waiting to be reviewed for more than this many hours, send a notification to all moderators. Set to 0 to disable these notifications."
auto_close_messages_post_count: "Maximum number of posts allowed in a message before it is automatically closed (0 to disable)"
auto_close_topics_post_count: "Maximum number of posts allowed in a topic before it is automatically closed (0 to disable)"
auto_close_topics_create_linked_topic: "Create a new linked topic when a topic is auto-closed based on 'auto close topics post count' setting"
2015-04-16 00:12:20 +08:00
code_formatting_style: "Code button in composer will default to this code formatting style"
max_allowed_message_recipients: "Maximum recipients allowed in a message."
watched_words_regular_expressions: "Watched words are regular expressions."
enable_diffhtml_preview: "Experimental feature which uses diffHTML to sync preview instead of full re-render"
enable_fast_edit: "Enables small selection of a post text to be edited inline."
old_post_notice_days: "Days before post notice becomes old"
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."
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
review_media_unless_trust_level: "Staff will review posts of users with lower trust levels if they contain embedded media."
blur_tl0_flagged_posts_media: "Blur flagged posts images to hide potentially NSFW content."
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."
skip_auto_delete_reply_likes: "When automatically deleting old replies, skip deleting posts with this number of likes or more."
2016-06-10 08:38:49 +08:00
default_email_digest_frequency: "How often users receive summary emails by default."
default_include_tl0_in_digests: "Include posts from new users in summary emails by default. Users can change this in their preferences."
default_email_level: "Set default email notification level for regular topics."
default_email_messages_level: "Set default email notification level when someone messages user."
default_email_mailing_list_mode: "Send an email for every new post by default."
default_email_mailing_list_mode_frequency: "Users who enable mailing list mode will receive emails this often by default."
disable_mailing_list_mode: "Disallow users from enabling mailing list mode (prevents any mailing list emails from being sent.)"
default_email_previous_replies: "Include previous replies in emails by default."
default_email_in_reply_to: "Include excerpt of replied to post in emails by default."
default_other_new_topic_duration_minutes: "Global default condition for which a topic is considered new."
default_other_auto_track_topics_after_msecs: "Global default time before a topic is automatically tracked."
default_other_notification_level_when_replying: "Global default notification level when the user replies to a topic."
default_other_external_links_in_new_tab: "Open external links in a new tab by default."
default_other_enable_quoting: "Enable quote reply for highlighted text by default."
default_other_enable_defer: "Enable defer topic functionality by default."
default_other_dynamic_favicon: "Show new/updated topic count on browser icon by default."
default_other_skip_new_user_tips: "Skip new user onboarding tips and badges."
default_other_like_notification_frequency: "Notify users on likes by default"
default_topics_automatic_unpin: "Automatically unpin topics when the user reaches the bottom by default."
default_categories_watching: "List of categories that are watched by default."
default_categories_tracking: "List of categories that are tracked by default."
default_categories_muted: "List of categories that are muted by default."
default_categories_watching_first_post: "List of categories in which first post in each new topic will be watched by default."
default_categories_regular: "List of categories that are not muted by default. Useful when `mute_all_categories_by_default` site setting is enabled."
mute_all_categories_by_default: "Set the default notification level of all the categories to muted. Require users opt-in to categories for them to appear in 'latest' and 'categories' pages. If you wish to amend the defaults for anonymous users set 'default_categories_' settings."
default_tags_watching: "List of tags that are watched by default."
default_tags_tracking: "List of tags that are tracked by default."
default_tags_muted: "List of tags that are muted by default."
default_tags_watching_first_post: "List of tags in which first post in each new topic will be watched by default."
default_text_size: "Text size which is selected by default"
default_title_count_mode: "Default mode for the page title counter"
retain_web_hook_events_period_days: "Number of days to retain web hook event records."
retry_web_hook_events: "Automatically retry failed web hook events for 4 times. Time gaps between the retries are 1, 5, 25 and 125 minutes."
revoke_api_keys_days: "Number of days before an unused API key is automatically revoked (0 for never)"
allow_user_api_keys: "Allow generation of user API keys"
allow_user_api_key_scopes: "List of scopes allowed for user API keys"
min_trust_level_for_user_api_key: "Trust level required for generation of user API keys"
allowed_user_api_auth_redirects: "Allowed URL for authentication redirect for user API keys. Wildcard symbol * can be used to match any part of it (e.g. www.example.com/*)."
allowed_user_api_push_urls: "Allowed URLs for server push to user API"
2019-06-12 19:22:27 +08:00
expire_user_api_keys_days: "Number of days before a user API key automatically expires (0 for never)"
tagging_enabled: "Enable tags on topics?"
min_trust_to_create_tag: "The minimum trust level required to create a tag."
max_tags_per_topic: "The maximum tags that can be applied to a topic."
max_tag_length: "The maximum amount of characters that can be used in a tag."
max_tag_search_results: "When searching for tags, the maximum number of results to show."
max_tags_in_filter_list: "Maximum number of tags to show in the filter dropdown. The most used tags will be shown."
tags_sort_alphabetically: "Show tags in alphabetical order. Default is to show in order of popularity."
tags_listed_by_group: "List tags by tag group on the <a href='%{base_path}/tags' target='_blank'>Tags page</a>."
tag_style: "Visual style for tag badges."
allow_staff_to_tag_pms: "Allow staff members to tag any personal message"
min_trust_level_to_tag_topics: "Minimum trust level required to tag topics"
2016-08-12 08:14:35 +08:00
suppress_overlapping_tags_in_list: "If tags match exact words in topic titles, don't show the tag"
remove_muted_tags_from_latest: "Don't show topics tagged only with muted tags in the latest topic list."
force_lowercase_tags: "Force all new tags to be entirely lowercase."
company_name: "Company Name"
governing_law: "Governing Law"
city_for_disputes: "City for Disputes"
shared_drafts_category: "Enable the Shared Drafts feature by designating a category for topic drafts. Topics in this category will be suppressed from topic lists for staff users."
shared_drafts_min_trust_level: "Allow users to see and edit Shared Drafts."
push_notifications_prompt: "Display user consent prompt."
2020-06-16 13:43:55 +08:00
push_notifications_icon: "The badge icon that appears in the notification corner. A 96×96 monochromatic PNG with transparency is recommended."
base_font: "Base font to use for most text on the site. Themes can override via the `--font-family` CSS custom property."
heading_font: "Font to use for headings on the site. Themes can override via the `--heading-font-family` CSS custom property."
short_title: "The short title will be used on the user's home screen, launcher, or other places where space may be limited. It should be limited to 12 characters."
dashboard_hidden_reports: "Allow to hide the specified reports from the dashboard."
dashboard_visible_tabs: "Choose which dashboard tabs are visible."
dashboard_general_tab_activity_metrics: "Choose reports to be displayed as activity metrics on the general tab."
gravatar_name: "Name of the Gravatar provider"
gravatar_base_url: "Url of the Gravatar provider's API base"
gravatar_login_url: "Url relative to gravatar_base_url, which provides the user with the login to the Gravatar service"
share_quote_buttons: "Determine which items appear in the quote sharing widget, and in what order."
share_quote_visibility: "Determine when to show quote sharing buttons: never, to anonymous users only or all users. "
create_revision_on_bulk_topic_moves: "Create revision for first posts when topics are moved into a new category in bulk."
allow_changing_staged_user_tracking: "Allow a staged user's category and tag notification preferences to be changed by an admin user."
use_email_for_username_and_name_suggestions: "Use the first part of email addresses for username and name suggestions. Note that this makes it easier for the public to guess full user email addresses (because a large proportion of people share common services like `gmail.com`)."
errors:
invalid_css_color: "Invalid color. Enter a color name or hex value."
invalid_email: "Invalid email address."
2014-06-12 02:42:41 +08:00
invalid_username: "There's no user with that username."
valid_username: "There's a user with that username."
invalid_group: "There's no group with that name."
invalid_integer_min_max: "Value must be between %{min} and %{max}."
invalid_integer_min: "Value must be %{min} or greater."
invalid_integer_max: "Value cannot be higher than %{max}."
invalid_integer: "Value must be an integer."
regex_mismatch: "Value doesn't match the required format."
must_include_latest: "Top menu must include the 'latest' tab."
invalid_string: "Invalid value."
invalid_string_min_max: "Must be between %{min} and %{max} characters."
invalid_string_min: "Must be at least %{min} characters."
invalid_string_max: "Must be no more than %{max} characters."
invalid_json: "Invalid JSON."
invalid_reply_by_email_address: "Value must contain '%{reply_key}' and be different from the notification email."
invalid_alternative_reply_by_email_addresses: "All values must contain '%{reply_key}' and be different from the notification email."
invalid_domain_hostname: "Must not include * or ? characters."
pop3_polling_host_is_empty: "You must set a 'pop3 polling host' before enabling POP3 polling."
pop3_polling_username_is_empty: "You must set a 'pop3 polling username' before enabling POP3 polling."
pop3_polling_password_is_empty: "You must set a 'pop3 polling password' before enabling POP3 polling."
pop3_polling_authentication_failed: "POP3 authentication failed. Please verify your pop3 credentials."
reply_by_email_address_is_empty: "You must set a 'reply by email address' before enabling reply by email."
email_polling_disabled: "You must enable either manual or POP3 polling before enabling reply by email."
2016-03-16 01:02:10 +08:00
user_locale_not_enabled: "You must first enable 'allow user locale' before enabling this setting."
invalid_regex: "Regex is invalid or not allowed."
email_editable_enabled: "You must disable 'email editable' before enabling this setting."
staged_users_disabled: "You must first enable 'staged users' before enabling this setting."
reply_by_email_disabled: "You must first enable 'reply by email' before enabling this setting."
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
discourse_connect_url_is_empty: "You must set a 'discourse connect url' before enabling this setting."
discourse_connect_invite_only: "You cannot enable DiscourseConnect and invite only at the same time."
enable_local_logins_disabled: "You must first enable 'enable local logins' before enabling this setting."
min_username_length_exists: "You cannot set the minimum username length above the shortest username (%{username})."
min_username_length_range: "You cannot set the minimum above the maximum."
max_username_length_exists: "You cannot set the maximum username length below the longest username (%{username})."
max_username_length_range: "You cannot set the maximum below the minimum."
invalid_hex_value: "Color values have to be 6-digit hexadecimal codes."
empty_selectable_avatars: "You must first upload at least two selectable avatars before enabling this setting."
category_search_priority:
low_weight_invalid: "You cannot set the weight to be greater or equal to 1."
high_weight_invalid: "You cannot set the weight to be smaller or equal to 1."
allowed_unicode_usernames:
regex_invalid: "The regular expression is invalid: %{error}"
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."
list_value_count: "The list must contain exactly %{count} values."
google_oauth2_hd_groups: "You must first set 'google oauth2 hd' before enabling this setting."
search_tokenize_chinese_enabled: "You must disable 'search_tokenize_chinese' before enabling this setting."
search_tokenize_japanese_enabled: "You must disable 'search_tokenize_japanese' before enabling this setting."
placeholder:
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
discourse_connect_provider_secrets:
key: "www.example.com"
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
value: "DiscourseConnect secret"
2013-02-06 03:16:51 +08:00
search:
extreme_load_error: "Site is under extreme load, search is disabled, try again later"
within_post: "#%{post_number} by %{username}"
2013-02-06 03:16:51 +08:00
types:
category: "Categories"
topic: "Results"
user: "Users"
2017-10-27 10:41:10 +08:00
results_page: "Search results for '%{term}'"
audio: "[audio]"
video: "[video]"
2013-02-06 03:16:51 +08:00
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
discourse_connect:
login_error: "Login Error"
not_found: "Your account couldn't be found. Please contact the site's administrator."
account_not_approved: "Your account is pending approval. You will receive an email notification when you are approved."
unknown_error: "There is a problem with your account. Please contact the site's administrator."
timeout_expired: "Account login timed out, please try logging in again."
no_email: "No email address was provided. Please contact the site's administrator."
blank_id_error: "The `external_id` is required but was blank"
email_error: "An account could not be registered with the email address <b>%{email}</b>. Please contact the site's administrator."
FEATURE: Rename 'Discourse SSO' to DiscourseConnect (#11978) The 'Discourse SSO' protocol is being rebranded to DiscourseConnect. This should help to reduce confusion when 'SSO' is used in the generic sense. This commit aims to: - Rename `sso_` site settings. DiscourseConnect specific ones are prefixed `discourse_connect_`. Generic settings are prefixed `auth_` - Add (server-side-only) backwards compatibility for the old setting names, with deprecation notices - Copy `site_settings` database records to the new names - Rename relevant translation keys - Update relevant translations This commit does **not** aim to: - Rename any Ruby classes or methods. This might be done in a future commit - Change any URLs. This would break existing integrations - Make any changes to the protocol. This would break existing integrations - Change any functionality. Further normalization across DiscourseConnect and other auth methods will be done separately The risks are: - There is no backwards compatibility for site settings on the client-side. Accessing auth-related site settings in Javascript is fairly rare, and an error on the client side would not be security-critical. - If a plugin is monkey-patching parts of the auth process, changes to locale keys could cause broken error messages. This should also be unlikely. The old site setting names remain functional, so security-related overrides will remain working. A follow-up commit will be made with a post-deploy migration to delete the old `site_settings` rows.
2021-02-08 18:04:33 +08:00
missing_secret: "Authentication failed due to missing secret. Contact the site administrators to fix this problem."
FEATURE: Allow using invites when DiscourseConnect SSO is enabled (#12419) This PR allows invitations to be used when the DiscourseConnect SSO is enabled for a site (`enable_discourse_connect`) and local logins are disabled. Previously invites could not be accepted with SSO enabled simply because we did not have the code paths to handle that logic. The invitation methods that are supported include: * Inviting people to groups via email address * Inviting people to topics via email address * Using invitation links generated by the Invite Users UI in the /my/invited/pending route The flow works like this: 1. User visits an invite URL 2. The normal invitation validations (redemptions/expiry) happen at that point 3. We store the invite key in a secure session 4. The user clicks "Accept Invitation and Continue" (see below) 5. The user is redirected to /session/sso then to the SSO provider URL then back to /session/sso_login 6. We retrieve the invite based on the invite key in secure session. We revalidate the invitation. We show an error to the user if it is not valid. An additional check here for invites with an email specified is to check the SSO email matches the invite email 7. If the invite is OK we create the user via the normal SSO methods 8. We redeem the invite and activate the user. We clear the invite key in secure session. 9. If the invite had a topic we redirect the user there, otherwise we redirect to / Note that we decided for SSO-based invites the `must_approve_users` site setting is ignored, because the invite is a form of pre-approval, and because regular non-staff users cannot send out email invites or generally invite to the forum in this case. Also deletes some group invite checks as per https://github.com/discourse/discourse/pull/12353
2021-03-19 08:20:10 +08:00
invite_redeem_failed: "Invite redemption failed. Please contact the site's administrator."
2014-11-24 09:15:51 +08:00
2013-02-06 03:16:51 +08:00
original_poster: "Original Poster"
most_recent_poster: "Most Recent Poster"
frequent_poster: "Frequent Poster"
Fix i18n issues reported on Crowdin (#11747) * Pluralize `groups.errors.adding_too_many_users` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#53882 * Pluralize `js.composer.error.title_too_short` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41172 * Pluralize `js.composer.error.title_too_long` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41174 * Pluralize `js.composer.error.post_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41178 * Pluralize `js.topic.progress.jump_prompt_of` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41958 * Use translations to join strings about posters This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#49334 It also makes some changes to the crawler view: * Removes `poster.moreCount` which is only available on the client for PMs * CSS class names are actually stored in `poster.extras` instead of `poster.extraClasses` * Stop concatenating category stats This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40740 * Pluralize `js.summary.description` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40782 * Pluralize `js.summary.description_time_MF` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40784 * Use translation to join list of tags This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#43372 * Pluralize `admin_js.admin.groups.manage.membership.automatic_membership_user_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#43720 * Pluralize `js.post.controls.delete_topic_confirm_modal` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#54804 * Stop concatenating `js.post.last_edited_on` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42358 * Stop concatenating `js.post.wiki_last_edited_on` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42356 It also fixes a regression because `js.post.wiki_last_edited_on` wasn't used anymore since 2017.
2021-02-02 17:50:04 +08:00
# Example: "Original Poster, Most Recent Poster"
poster_description_joiner: ", "
2013-02-06 03:16:51 +08:00
redirected_to_top_reasons:
2014-08-20 16:09:32 +08:00
new_user: "Welcome to our community! These are the most popular recent topics."
not_seen_in_a_month: "Welcome back! We haven't seen you in a while. These are the most popular topics since you've been away."
merge_posts:
edit_reason:
one: "A post was merged in by %{username}"
other: "%{count} posts were merged in by %{username}"
errors:
different_topics: "Posts belonging to different topics cannot be merged."
different_users: "Posts belonging to different users cannot be merged."
max_post_length: "Posts cannot be merged because the combined post length is more than allowed."
2013-02-06 03:16:51 +08:00
move_posts:
new_topic_moderator_post:
one: "A post was split to a new topic: %{topic_link}"
other: "%{count} posts were split to a new topic: %{topic_link}"
new_message_moderator_post:
one: "A post was split to a new message: %{topic_link}"
other: "%{count} posts were split to a new message: %{topic_link}"
existing_topic_moderator_post:
one: "A post was merged into an existing topic: %{topic_link}"
other: "%{count} posts were merged into an existing topic: %{topic_link}"
existing_message_moderator_post:
one: "A post was merged into an existing message: %{topic_link}"
other: "%{count} posts were merged into an existing message: %{topic_link}"
2013-02-06 03:16:51 +08:00
change_owner:
post_revision_text: "Ownership transferred"
publish_page:
slug_errors:
blank: "can't be blank"
unavailable: "is unavailable"
invalid: "contains invalid characters"
2013-02-06 03:16:51 +08:00
topic_statuses:
autoclosed_message_max_posts:
one: "This message was automatically closed after reaching the maximum limit of %{count} reply."
other: "This message was automatically closed after reaching the maximum limit of %{count} replies."
autoclosed_topic_max_posts:
one: "This topic was automatically closed after reaching the maximum limit of %{count} reply."
other: "This topic was automatically closed after reaching the maximum limit of %{count} replies."
autoclosed_enabled_days:
one: "This topic was automatically closed after %{count} day. New replies are no longer allowed."
other: "This topic was automatically closed after %{count} days. New replies are no longer allowed."
autoclosed_enabled_hours:
one: "This topic was automatically closed after %{count} hour. New replies are no longer allowed."
other: "This topic was automatically closed after %{count} hours. New replies are no longer allowed."
autoclosed_enabled_minutes:
one: "This topic was automatically closed after %{count} minute. New replies are no longer allowed."
other: "This topic was automatically closed after %{count} minutes. New replies are no longer allowed."
autoclosed_enabled_lastpost_days:
one: "This topic was automatically closed %{count} day after the last reply. New replies are no longer allowed."
other: "This topic was automatically closed %{count} days after the last reply. New replies are no longer allowed."
autoclosed_enabled_lastpost_hours:
one: "This topic was automatically closed %{count} hour after the last reply. New replies are no longer allowed."
2014-11-18 02:01:08 +08:00
other: "This topic was automatically closed %{count} hours after the last reply. New replies are no longer allowed."
autoclosed_enabled_lastpost_minutes:
one: "This topic was automatically closed %{count} minute after the last reply. New replies are no longer allowed."
other: "This topic was automatically closed %{count} minutes after the last reply. New replies are no longer allowed."
autoclosed_disabled_days:
one: "This topic was automatically opened after %{count} day."
other: "This topic was automatically opened after %{count} days."
autoclosed_disabled_hours:
one: "This topic was automatically opened after %{count} hour."
other: "This topic was automatically opened after %{count} hours."
autoclosed_disabled_minutes:
one: "This topic was automatically opened after %{count} minute."
other: "This topic was automatically opened after %{count} minutes."
autoclosed_disabled_lastpost_days:
one: "This topic was automatically opened %{count} day after the last reply."
other: "This topic was automatically opened %{count} days after the last reply."
autoclosed_disabled_lastpost_hours:
one: "This topic was automatically opened %{count} hour after the last reply."
other: "This topic was automatically opened %{count} hours after the last reply."
autoclosed_disabled_lastpost_minutes:
one: "This topic was automatically opened %{count} minute after the last reply."
other: "This topic was automatically opened %{count} minutes after the last reply."
autoclosed_disabled: "This topic is now opened. New replies are allowed."
autoclosed_disabled_lastpost: "This topic is now opened. New replies are allowed."
2017-05-12 00:52:15 +08:00
auto_deleted_by_timer: "Automatically deleted by timer."
2013-02-06 03:16:51 +08:00
login:
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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."
2019-11-21 12:44:10 +08:00
security_key_alternative: "Try another way"
security_key_authenticate: "Authenticate with Security Key"
security_key_not_allowed_error: "The security key authentication process either timed out or was cancelled."
security_key_no_matching_credential_error: "No matching credentials could be found in the provided security key."
security_key_support_missing_error: "Your current device or browser does not support the use of security keys. Please use a different method."
security_key_invalid: "There was an error validating the security key."
2013-02-06 03:16:51 +08:00
not_approved: "Your account hasn't been approved yet. You will be notified by email when you are ready to log in."
incorrect_username_email_or_password: "Incorrect username, email or password"
incorrect_password: "Incorrect password"
2013-02-06 03:16:51 +08:00
wait_approval: "Thanks for signing up. We will notify you when your account has been approved."
2013-08-01 02:44:42 +08:00
active: "Your account is activated and ready to use."
2017-05-04 05:00:17 +08:00
activate_email: "<p>Youre almost done! We sent an activation mail to <b>%{email}</b>. Please follow the instructions in the mail to activate your account.</p><p>If it doesnt arrive, check your spam folder.</p>"
2013-02-12 00:18:26 +08:00
not_activated: "You can't log in yet. We sent an activation email to you. Please follow the instructions in the email to activate your account."
not_allowed_from_ip_address: "You can't log in as %{username} from that IP address."
admin_not_allowed_from_ip_address: "You can't log in as admin from that IP address."
reset_not_allowed_from_ip_address: "You can't request a password reset from that IP address."
suspended: "You can't log in until %{date}."
suspended_with_reason: "Account suspended until %{date}: %{reason}"
suspended_with_reason_forever: "Account suspended: %{reason}"
2013-02-14 09:23:30 +08:00
errors: "%{errors}"
2013-02-06 03:16:51 +08:00
not_available: "Not available. Try %{suggestion}?"
something_already_taken: "Something went wrong, perhaps the username or email is already registered. Try the forgot password link."
omniauth_error:
generic: "Sorry, there was an error authorizing your account. Please try again."
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."
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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."
new_registrations_disabled: "New account registrations are not allowed at this time."
password_too_long: "Passwords are limited to 200 characters."
email_too_long: "The email you provided is too long. Mailbox names must be no more than 254 characters, and domain names must be no more than 253 characters."
wrong_invite_code: "The invite code you entered was incorrect."
reserved_username: "That username is not allowed."
missing_user_field: "You have not completed all the user fields"
auth_complete: "Authentication is complete."
click_to_continue: "Click here to continue."
already_logged_in: "Sorry! This invitation is intended for new users, who do not already have an existing account."
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
second_factor_title: "Two-Factor Authentication"
2018-03-23 08:17:43 +08:00
second_factor_description: "Please enter the required authentication code from your app:"
2018-06-28 16:12:32 +08:00
second_factor_backup_description: "Please enter one of your backup codes:"
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
second_factor_backup_title: "Two-Factor Backup Code"
2018-06-28 16:12:32 +08:00
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."
missing_second_factor_code: "Please provide a code."
2018-06-28 16:12:32 +08:00
second_factor_toggle:
2020-01-15 18:27:12 +08:00
totp: "Use an authenticator app or security key instead"
2018-08-01 08:32:05 +08:00
backup_code: "Use a backup code instead"
FEATURE: Centralized 2FA page (#15377) 2FA support in Discourse was added and grown gradually over the years: we first added support for TOTP for logins, then we implemented backup codes, and last but not least, security keys. 2FA usage was initially limited to logging in, but it has been expanded and we now require 2FA for risky actions such as adding a new admin to the site. As a result of this gradual growth of the 2FA system, technical debt has accumulated to the point where it has become difficult to require 2FA for more actions. We now have 5 different 2FA UI implementations and each one has to support all 3 2FA methods (TOTP, backup codes, and security keys) which makes it difficult to maintain a consistent UX for these different implementations. Moreover, there is a lot of repeated logic in the server-side code behind these 5 UI implementations which hinders maintainability even more. This commit is the first step towards repaying the technical debt: it builds a system that centralizes as much as possible of the 2FA server-side logic and UI. The 2 main components of this system are: 1. A dedicated page for 2FA with support for all 3 methods. 2. A reusable server-side class that centralizes the 2FA logic (the `SecondFactor::AuthManager` class). From a top-level view, the 2FA flow in this new system looks like this: 1. User initiates an action that requires 2FA; 2. Server is aware that 2FA is required for this action, so it redirects the user to the 2FA page if the user has a 2FA method, otherwise the action is performed. 3. User submits the 2FA form on the page; 4. Server validates the 2FA and if it's successful, the action is performed and the user is redirected to the previous page. A more technically-detailed explanation/documentation of the new system is available as a comment at the top of the `lib/second_factor/auth_manager.rb` file. Please note that the details are not set in stone and will likely change in the future, so please don't use the system in your plugins yet. Since this is a new system that needs to be tested, we've decided to migrate only the 2FA for adding a new admin to the new system at this time (in this commit). Our plan is to gradually migrate the remaining 2FA implementations to the new system. For screenshots of the 2FA page, see PR #15377 on GitHub.
2022-02-17 17:12:59 +08:00
second_factor_auth:
challenge_not_found: "Couldn't find a 2FA challenge in your current session."
challenge_expired: "Too much time has passed since the 2FA challenge was staged and it's no longer valid. Please try again."
challenge_not_completed: "You've not completed the 2FA challenge to perform this action. Please complete the 2FA challenge and try again."
actions:
grant_admin:
description: "For additional security measures, you need to confirm your 2FA before %{username} is granted admin access."
admin:
email:
sent_test: "sent!"
user:
merge_user:
updating_username: "Updating username..."
changing_post_ownership: "Changing post ownership..."
merging_given_daily_likes: "Merging given daily likes..."
merging_post_timings: "Merging post timings..."
merging_user_visits: "Merging user visits..."
updating_site_settings: "Updating site settings..."
updating_user_stats: "Updating user stats..."
merging_user_attributes: "Merging user attributes..."
updating_user_ids: "Updating user ids..."
deleting_source_user: "Deleting source user..."
2013-02-06 03:16:51 +08:00
user:
deactivated: "Was deactivated due to too many bounced emails to '%{email}'."
deactivated_by_staff: "Deactivated by staff"
deactivated_by_inactivity:
one: "Automatically deactivated after %{count} day of inactivity"
other: "Automatically deactivated after %{count} days of inactivity"
activated_by_staff: "Activated by staff"
new_user_typed_too_fast: "New user typed too fast"
content_matches_auto_silence_regex: "Content matches auto silence regex"
content_matches_auto_block_regex: "Content matches auto block regex"
2013-02-06 03:16:51 +08:00
username:
2014-06-10 08:25:46 +08:00
short: "must be at least %{min} characters"
long: "must be no more than %{max} characters"
too_long: "is too long"
characters: "must only include numbers, letters, dashes, dots, and underscores"
2013-02-06 03:16:51 +08:00
unique: "must be unique"
blank: "must be present"
must_begin_with_alphanumeric_or_underscore: "must begin with a letter, a number or an underscore"
must_end_with_alphanumeric: "must end with a letter or a number"
must_not_contain_two_special_chars_in_seq: "must not contain a sequence of 2 or more special chars (.-_)"
must_not_end_with_confusing_suffix: "must not end with a confusing suffix like .json or .png etc."
email:
invalid: "is invalid."
not_allowed: "is not allowed from that email provider. Please use another email address."
blocked: "is not allowed."
revoked: "Won't be sending emails to '%{email}' until %{date}."
does_not_exist: "N/A"
ip_address:
2015-06-02 10:05:42 +08:00
blocked: "New registrations are not allowed from your IP address."
max_new_accounts_per_registration_ip: "New registrations are not allowed from your IP address (maximum limit reached). Contact a staff member."
website:
domain_not_allowed: "Website is invalid. Allowed domains are: %{domains}"
auto_rejected: "Rejected automatically due to age. See auto_handle_queued_age site setting."
destroy_reasons:
unused_staged_user: "Unused staged user"
fixed_primary_email: "Fixed primary email for staged user"
same_ip_address: "Same IP address (%{ip_address}) as other users"
inactive_user: "Inactive user"
reviewable_reject_auto: "Auto handle queued reviewables"
reviewable_reject: "Reviewable user rejected"
email_in_spam_header: "User's first email was flagged as spam"
already_silenced: "User was already silenced by %{staff} %{time_ago}."
already_suspended: "User was already suspended by %{staff} %{time_ago}."
Fix i18n issues reported on Crowdin (#13191) * Pluralize `js.topics.bulk.dismiss_new_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57320 * Pluralize `js.topics.bulk.dismiss_read_with_selected` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57316 * Pluralize `js.topics.bulk.dismiss_button_with_selected` * Replaces concatenated string used by `js.topic.suggest_create_topic` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#41834 * Less confusing `admin_js.admin.watched_words.test.modal_title` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-sv#44992 * Delete unused `backup.location.*` keys This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#46330 * Replace "reviewable" with "reviewable items" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#56952 * Remove "ago" from `emails.incoming.missing_attachment` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-sv#46038 * Remove "/Posts" from `js.keyboard_shortcuts_help.application.dismiss_new_posts` Because the shortcut doesn't do anything to posts anymore. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-de#43180 * Pluralize `user.cannot_delete_has_posts` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-he#57490
2021-06-22 17:29:35 +08:00
cannot_delete_has_posts:
one: "User %{username} has %{count} post in a public topic or personal message, so they can't be deleted."
other: "User %{username} has %{count} posts in public topics or personal messages, so they can't be deleted."
2013-02-06 03:16:51 +08:00
2016-01-20 17:25:25 +08:00
unsubscribe_mailer:
title: "Unsubscribe Mailer"
2016-01-20 17:25:25 +08:00
subject_template: "Confirm you no longer want to receive email updates from %{site_title}"
text_body_template: |
Someone (possibly you?) requested to no longer send email updates from %{site_domain_name} to this address.
If you wish to confirm this, please click this link:
2016-01-20 17:25:25 +08:00
%{confirm_unsubscribe_link}
2016-01-21 22:05:03 +08:00
If you want to continue receiving email updates, you may ignore this email.
2016-01-20 17:25:25 +08:00
2013-02-06 03:16:51 +08:00
invite_mailer:
title: "Invite Mailer"
subject_template: "%{inviter_name} invited you to '%{topic_title}' on %{site_domain_name}"
2013-02-06 03:16:51 +08:00
text_body_template: |
%{inviter_name} invited you to a discussion
2013-02-06 03:16:51 +08:00
> **%{topic_title}**
>
> %{topic_excerpt}
2013-02-06 03:16:51 +08:00
2014-06-15 06:49:19 +08:00
at
2013-02-06 03:16:51 +08:00
> %{site_title} -- %{site_description}
2013-02-06 03:16:51 +08:00
2014-06-15 06:49:19 +08:00
If you're interested, click the link below:
%{invite_link}
2016-06-08 20:34:25 +08:00
custom_invite_mailer:
title: "Custom Invite Mailer"
subject_template: "%{inviter_name} invited you to '%{topic_title}' on %{site_domain_name}"
2016-06-08 20:34:25 +08:00
text_body_template: |
%{inviter_name} invited you to a discussion
2016-06-08 20:34:25 +08:00
> **%{topic_title}**
2016-06-08 20:34:25 +08:00
>
> %{topic_excerpt}
at
> %{site_title} -- %{site_description}
2017-01-18 17:11:49 +08:00
With this note
2016-06-08 20:34:25 +08:00
2017-01-18 17:09:10 +08:00
> %{user_custom_message}
2016-06-08 20:34:25 +08:00
If you're interested, click the link below:
%{invite_link}
invite_forum_mailer:
title: "Invite Forum Mailer"
subject_template: "%{inviter_name} invited you to join %{site_domain_name}"
text_body_template: |
%{inviter_name} invited you to join
2014-06-15 06:49:19 +08:00
> **%{site_title}**
2014-06-15 06:59:02 +08:00
>
2014-06-15 06:49:19 +08:00
> %{site_description}
2014-06-15 06:49:19 +08:00
If you're interested, click the link below:
2014-06-15 06:49:19 +08:00
%{invite_link}
2016-06-08 20:34:25 +08:00
custom_invite_forum_mailer:
title: "Custom Invite Forum Mailer"
subject_template: "%{inviter_name} invited you to join %{site_domain_name}"
2016-06-08 20:34:25 +08:00
text_body_template: |
%{inviter_name} invited you to join
2016-06-08 20:34:25 +08:00
> **%{site_title}**
>
> %{site_description}
2017-01-18 17:11:49 +08:00
With this note
2016-06-08 20:34:25 +08:00
2017-01-18 17:09:10 +08:00
> %{user_custom_message}
2016-06-08 20:34:25 +08:00
If you're interested, click the link below:
%{invite_link}
invite_password_instructions:
title: "Invite Password Instructions"
subject_template: "Set password for your %{site_name} account"
text_body_template: |
Thanks for accepting your invitation to %{site_name} -- welcome!
Click this link to choose a password now:
2017-03-29 02:27:54 +08:00
%{base_url}/u/password-reset/%{email_token}
2015-07-31 16:55:52 +08:00
(If the link above has expired, choose "I forgot my password" when logging in with your email address.)
download_backup_mailer:
title: "Download Backup Mailer"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Site Backup Download"
text_body_template: |
2017-03-02 07:16:05 +08:00
Here's the [site backup download](%{backup_file_path}) you requested.
We sent this download link to your validated email address for security reasons.
(If you *didn't* request this download, you should be seriously concerned -- someone has admin access to your site.)
no_token: |
Sorry, this backup download link has already been used or has expired.
admin_confirmation_mailer:
title: "Admin Confirmation"
subject_template: "[%{email_prefix}] Confirm new Admin Account"
text_body_template: |
Please confirm that you'd like to add **%{target_username} (%{target_email})** as an administrator for your forum.
[Confirm Administrator Account](%{admin_confirm_url})
2013-02-06 03:16:51 +08:00
test_mailer:
title: "Test Mailer"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email Deliverability Test"
2013-02-06 03:16:51 +08:00
text_body_template: |
2014-09-10 05:29:37 +08:00
This is a test email from
2013-02-06 03:16:51 +08:00
[**%{base_url}**][0]
2013-02-06 03:16:51 +08:00
We hope you received this email deliverability test OK!
Here is a [handy checklist for verifying email delivery configuration][1].
2013-02-06 03:16:51 +08:00
Good luck,
Your friends at [Discourse](https://www.discourse.org)
2013-02-06 03:16:51 +08:00
[0]: %{base_url}
[1]: https://meta.discourse.org/t/email-delivery-configuration-checklist/209839
2013-02-06 03:16:51 +08:00
new_version_mailer:
title: "New Version Mailer"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] New Discourse version, update available"
text_body_template: |
2018-10-10 19:11:58 +08:00
Hooray, a new version of [Discourse](https://www.discourse.org) is available!
Your version: %{installed_version}
2014-03-14 07:22:31 +08:00
New version: **%{new_version}**
- Upgrade using our easy **[one-click browser upgrade](%{base_url}/admin/upgrade)**
- See what's new in the [release notes](https://meta.discourse.org/tag/release-notes) or view the [raw GitHub changelog](https://github.com/discourse/discourse/commits/main)
2014-03-14 07:22:31 +08:00
- Visit [meta.discourse.org](https://meta.discourse.org) for news, discussion, and support for Discourse
new_version_mailer_with_notes:
title: "New Version Mailer with Notes"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] update available"
text_body_template: |
2018-10-10 19:11:58 +08:00
Hooray, a new version of [Discourse](https://www.discourse.org) is available!
Your version: %{installed_version}
2014-03-14 07:22:31 +08:00
New version: **%{new_version}**
- Upgrade using our easy **[one-click browser upgrade](%{base_url}/admin/upgrade)**
2014-03-14 07:22:31 +08:00
- See what's new in the [release notes](https://meta.discourse.org/tag/release-notes) or view the [raw GitHub changelog](https://github.com/discourse/discourse/commits/main)
- Visit [meta.discourse.org](https://meta.discourse.org) for news, discussion, and support for Discourse
2014-03-14 07:22:31 +08:00
### Release notes
%{notes}
flag_reasons:
2015-01-07 20:34:15 +08:00
off_topic: "Your post was flagged as **off-topic**: the community feels it is not a good fit for the topic, as currently defined by the title and the first post."
inappropriate: "Your post was flagged as **inappropriate**: the community feels it is offensive, abusive, or a violation of [our community guidelines](%{base_path}/guidelines)."
2015-01-13 09:30:14 +08:00
spam: "Your post was flagged as **spam**: the community feels it is an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic as expected."
2015-01-07 20:34:15 +08:00
notify_moderators: "Your post was flagged **for moderator attention**: the community feels something about the post requires manual intervention by a staff member."
responder:
off_topic: "The post was flagged as **off-topic**: the community feels it is not a good fit for the topic, as currently defined by the title and the first post."
inappropriate: "The post was flagged as **inappropriate**: the community feels it is offensive, abusive, or a violation of [our community guidelines](%{base_path}/guidelines)."
spam: "The post was flagged as **spam**: the community feels it is an advertisement, something that is overly promotional in nature instead of being useful or relevant to the topic as expected."
notify_moderators: "The post was flagged **for moderator attention**: the community feels something about the post requires manual intervention by a staff member."
flags_dispositions:
2014-08-01 07:17:31 +08:00
agreed: "Thanks for letting us know. We agree there is an issue and we're looking into it."
agreed_and_deleted: "Thanks for letting us know. We agree there is an issue and we've removed the post."
disagreed: "Thanks for letting us know. We're looking into it."
ignored: "Thanks for letting us know. We're looking into it."
ignored_and_deleted: "Thanks for letting us know. We've removed the post."
temporarily_closed_due_to_flags:
one: "This topic is temporarily closed for at least %{count} hour due to a large number of community flags."
other: "This topic is temporarily closed for at least %{count} hours due to a large number of community flags."
2013-02-06 03:16:51 +08:00
system_messages:
reviewables_reminder:
subject_template: "There are items in the review queue that need reviewing"
text_body_template:
one: "%{mentions} Items were submitted over %{count} hour ago. [Please review them](%{base_url}/review)."
other: "%{mentions} Items were submitted over %{count} hours ago. [Please review them](%{base_url}/review)."
2017-04-27 23:45:49 +08:00
private_topic_title: "Topic #%{id}"
contents_hidden: "Please visit the post to see its contents."
2013-02-06 03:16:51 +08:00
post_hidden:
title: "Post Hidden"
2016-06-16 16:53:40 +08:00
subject_template: "Post hidden by community flags"
2013-02-06 03:16:51 +08:00
text_body_template: |
Hello,
2016-05-14 06:11:35 +08:00
This is an automated message from %{site_name} to let you know that your post was hidden.
2013-02-06 03:16:51 +08:00
2017-12-15 01:06:32 +08:00
<%{base_url}%{url}>
2013-02-06 03:16:51 +08:00
%{flag_reason}
This post was hidden due to flags from the community, so please consider how you might revise your post to reflect their feedback. **You can edit your post after %{edit_delay} minutes, and it will be automatically unhidden.**
2013-02-06 03:16:51 +08:00
However, if the post is hidden by the community a second time, it will remain hidden until handled by staff.
2013-02-06 03:16:51 +08:00
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
2013-02-06 03:16:51 +08:00
post_hidden_again:
title: "Post Hidden again"
2018-04-11 07:57:25 +08:00
subject_template: "Post hidden by community flags, staff notified"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that your post was hidden again.
<%{base_url}%{url}>
%{flag_reason}
The community flagged this post and now it is hidden. **Because this post has been hidden more than once, your post will now remain hidden until it is handled by a staff member.**
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
queued_by_staff:
title: "Post Needs Approval"
subject_template: "Post hidden by staff, awaiting approval"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that your post was hidden.
<%{base_url}%{url}>
Your post will remain hidden until a staff member reviews it.
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
flags_disagreed:
title: "Flagged post restored by staff"
subject_template: "Flagged post restored by staff"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that [your post](%{base_url}%{url}) was restored.
This post was flagged by the community and a staff member opted to restore it.
[details="Click to expand restored post"]
``` markdown
%{flagged_post_raw_content}
```
[/details]
flags_agreed_and_post_deleted:
2018-07-26 01:45:57 +08:00
title: "Flagged post removed by staff"
subject_template: "Flagged post removed by staff"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that [your post](%{base_url}%{url}) was removed.
2019-01-21 15:35:45 +08:00
%{flag_reason}
This post was flagged by the community and a staff member opted to remove it.
``` markdown
%{flagged_post_raw_content}
```
2018-07-26 01:45:57 +08:00
Please review our [community guidelines](%{base_url}/guidelines) for details.
flags_agreed_and_post_deleted_for_responders:
title: "Reply removed from flagged post by staff"
subject_template: "Reply removed from flagged post by staff"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that a [post](%{base_url}%{url}) you replied to was removed.
%{flag_reason}
This post was flagged by the community and a staff member opted to remove it.
``` markdown
%{flagged_post_raw_content}
```
To which you responded
``` markdown
%{flagged_post_response_raw_content}
```
For more details on the reason for removal, please review our [community guidelines](%{base_url}/guidelines).
2013-02-06 03:16:51 +08:00
usage_tips:
text_body_template: |
2017-04-15 14:52:20 +08:00
For a few quick tips on getting started as a new user, [check out this blog post](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/).
2013-02-06 03:16:51 +08:00
2018-06-26 08:34:47 +08:00
As you participate here, well get to know you, and temporary new user limitations will be lifted. Over time youll gain [trust levels](https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/) that include special abilities to help us manage our community together.
2013-02-06 03:16:51 +08:00
welcome_user:
title: "Welcome User"
2013-02-06 03:16:51 +08:00
subject_template: "Welcome to %{site_name}!"
text_body_template: |
Thanks for joining %{site_name}, and welcome!
2013-02-06 03:16:51 +08:00
%{new_user_tips}
We believe in [civilized community behavior](%{base_url}/guidelines) at all times.
2013-02-06 03:16:51 +08:00
Enjoy your stay!
welcome_tl1_user:
title: "Welcome TL1 User"
2018-06-24 05:30:04 +08:00
subject_template: "Thanks for spending time with us"
text_body_template: |
2018-06-26 08:34:47 +08:00
Hey there. We see youve been busy reading, which is fantastic, so weve promoted you up a [trust level!](https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/)
Were really glad youre spending time with us and wed love to know more about you. Take a moment to [fill out your profile](%{base_url}/my/preferences/profile), or feel free to [start a new topic](%{base_url}/categories).
welcome_staff:
title: "Welcome Staff"
subject_template: "Congratulations, youve been granted %{role} status!"
text_body_template: |
Youve been granted %{role} status by a fellow staff member.
As a %{role}, you now have access to the <a href='%{base_url}/admin' target='_blank'>admin interface</a>.
2019-10-29 08:19:42 +08:00
With great power comes great responsibility. If youre new to moderating, please refer to the [Moderation Guide](https://meta.discourse.org/t/discourse-moderation-guide/63116).
2013-02-06 03:16:51 +08:00
welcome_invite:
title: "Welcome Invite"
2013-02-06 03:16:51 +08:00
subject_template: "Welcome to %{site_name}!"
text_body_template: |
2014-07-09 07:58:39 +08:00
Thanks for accepting your invitation to %{site_name} -- welcome!
2013-02-06 03:16:51 +08:00
- We've created this new account **%{username}** for you. Change your name or password by visiting [your user profile][prefs].
2013-02-06 03:16:51 +08:00
2017-01-06 06:05:22 +08:00
- When you log in, please **use the same email address from your original invitation** — otherwise we won't be able to tell it's you!
2013-02-06 03:16:51 +08:00
%{new_user_tips}
We believe in [civilized community behavior](%{base_url}/guidelines) at all times.
2013-02-06 03:16:51 +08:00
Enjoy your stay!
[prefs]: %{user_preferences_url}
tl2_promotion_message:
subject_template: "Congratulations on your trust level promotion!"
text_body_template: |
Weve promoted you up another [trust level](https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/)!
As an experienced user, you might appreciate [this list of handy tips and tricks](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/).
We invite you to keep getting involved we enjoy having you around.
backup_succeeded:
title: "Backup Succeeded"
subject_template: "Backup completed successfully"
text_body_template: |
The backup was successful.
2016-08-17 09:15:06 +08:00
Visit the [admin > backup section](%{base_url}/admin/backups) to download your new backup.
2013-02-06 03:16:51 +08:00
Here's the log:
%{logs}
backup_failed:
title: "Backup Failed"
subject_template: "Backup failed"
text_body_template: |
The backup has failed.
Here's the log:
%{logs}
restore_succeeded:
title: "Restore Succeeded"
subject_template: "Restore completed successfully"
text_body_template: |
The restore was successful.
Here's the log:
%{logs}
2013-02-06 03:16:51 +08:00
restore_failed:
title: "Restore Failed"
subject_template: "Restore failed"
text_body_template: |
The restore has failed.
Here's the log:
%{logs}
2014-05-28 04:14:37 +08:00
bulk_invite_succeeded:
title: "Bulk Invite Succeeded"
2014-07-09 02:09:43 +08:00
subject_template: "Bulk user invite processed successfully"
text_body_template: "Your bulk user invite file was processed, %{sent} invites mailed."
2014-05-28 04:14:37 +08:00
bulk_invite_failed:
title: "Bulk Invite Failed"
2014-07-09 02:09:43 +08:00
subject_template: "Bulk user invite processed with errors"
2014-05-28 04:14:37 +08:00
text_body_template: |
2014-07-09 02:09:43 +08:00
Your bulk user invite file was processed, %{sent} invites mailed with %{failed} error(s).
2014-05-28 04:14:37 +08:00
Here's the log:
``` text
2014-05-28 04:14:37 +08:00
%{logs}
```
user_added_to_group_as_owner:
title: "Added to Group as Owner"
subject_template: "You have been added as an owner of the %{group_name} group"
text_body_template: |
You have been added as an owner of the [%{group_name}](%{base_url}%{group_path}) group.
user_added_to_group_as_member:
title: "Added to Group as Member"
subject_template: "You have been added as a member of the %{group_name} group"
text_body_template: |
You have been added as a member of the [%{group_name}](%{base_url}%{group_path}) group.
2014-05-28 04:14:37 +08:00
2014-08-09 18:28:57 +08:00
csv_export_succeeded:
title: "CSV Export Succeeded"
subject_template: "[%{export_title}] Data export complete"
2014-08-09 18:28:57 +08:00
text_body_template: |
2014-12-25 07:41:21 +08:00
Your data export was successful! :dvd:
2014-08-09 18:28:57 +08:00
%{download_link}
2014-08-09 18:28:57 +08:00
2014-12-25 07:41:21 +08:00
The above download link will be valid for 48 hours.
The data is compressed as a zip archive. If the archive does not extract itself when you open it, use the tool recommended here: https://www.7-zip.org/
2014-08-09 18:28:57 +08:00
csv_export_failed:
title: "CSV Export Failed"
2014-12-25 07:41:21 +08:00
subject_template: "Data export failed"
text_body_template: "We're sorry, but your data export failed. Please check the logs or [contact a staff member](%{base_url}/about)."
2014-08-09 18:28:57 +08:00
email_reject_insufficient_trust_level:
title: "Email Reject insufficient Trust Level"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Insufficient Trust Level"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your account does not have the required trust level to post new topics to this email address. If you believe this is an error, [contact a staff member](%{base_url}/about).
2016-03-24 01:56:03 +08:00
email_reject_user_not_found:
title: "Email Reject User Not Found"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- User Not Found"
2016-03-24 01:56:03 +08:00
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your reply was sent from an unknown email address. Try sending from another email address, or [contact a staff member](%{base_url}/about).
2016-03-24 01:56:03 +08:00
email_reject_screened_email:
title: "Email Reject Screened Email"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Blocked Email"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your reply was sent from a blocked email address. Try sending from another email address, or [contact a staff member](%{base_url}/about).
email_reject_not_allowed_email:
title: "Email Reject Not Allowed Email"
subject_template: "[%{email_prefix}] Email issue -- Blocked Email"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your reply was sent from a blocked email address. Try sending from another email address, or [contact a staff member](%{base_url}/about).
email_reject_inactive_user:
title: "Email Reject Inactive User"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Inactive User"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your account associated with this email address is not activated. Please activate your account before sending emails in.
2017-11-11 01:18:08 +08:00
email_reject_silenced_user:
title: "Email Reject Silenced User"
subject_template: "[%{email_prefix}] Email issue -- Silenced User"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
2017-11-11 01:18:08 +08:00
Your account associated with this email address has been silenced.
email_reject_reply_user_not_matching:
title: "Email Reject User Not Matching"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Unexpected Reply Address"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your reply was sent from a different email address than the one we expected, so we're not sure if this is the same person. Try sending from another email address, or [contact a staff member](%{base_url}/about).
email_reject_empty:
title: "Email Reject Empty"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- No Content"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
We couldn't find any reply content in your email.
2014-10-22 05:41:18 +08:00
If you're getting this and you _did_ include a reply, try again with simpler formatting.
email_reject_parsing:
title: "Email Reject Parsing"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Content Unrecognized"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
We couldn't find your reply in the email. **Make sure your reply is at the top of the email** -- we can't process inline replies.
email_reject_invalid_access:
title: "Email Reject Invalid Access"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Invalid Access"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your account does not have the privileges to post new topics in that category. If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_strangers_not_allowed:
title: "Email Reject Strangers Not Allowed"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Invalid Access"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
The category you sent this email to only allows replies from users with valid accounts and known email addresses. If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_invalid_post:
title: "Email Reject Invalid Post"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Posting error"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Some possible causes are: complex formatting, message too large, message too small. Please try again, or post via the website if this continues.
email_reject_invalid_post_specified:
title: "Email Reject Invalid Post Specified"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Posting error"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
2014-08-15 06:05:15 +08:00
Reason:
%{post_error}
2014-08-15 06:05:15 +08:00
If you can correct the problem, please try again.
date_invalid: "No post creation date found. Is the e-mail missing a Date: header?"
email_reject_post_too_short:
title: "Email Reject Post Too Short"
subject_template: "[%{email_prefix}] Email issue -- Post too short"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
To promote more in depth conversations, very short replies are not allowed. Can you please reply with at least %{count} characters? Alternatively, you can like a post via email by replying with "+1".
email_reject_invalid_post_action:
title: "Email Reject Invalid Post Action"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Invalid Post Action"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
The Post Action was not recognized. Please try again, or post via the website if this continues.
2014-06-24 08:46:22 +08:00
email_reject_reply_key:
title: "Email Reject Reply Key"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Unknown Reply Key"
2014-06-24 08:46:22 +08:00
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
2014-06-24 08:46:22 +08:00
The reply key in the email is invalid or unknown, so we can't figure out what this email is in reply to. [Contact a staff member](%{base_url}/about).
2014-06-24 08:46:22 +08:00
email_reject_bad_destination_address:
title: "Email Reject Bad Destination Address"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Unknown To: Address"
2014-08-14 02:47:21 +08:00
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Here are some things to check:
- Do you use more than one email address? Did you reply from a different email address than the one you originally used? Email replies require that you use the same email address when replying.
- Did your email software properly use the Reply-To: email address when replying? Unfortunately, some email software incorrectly sends replies to the From: address, which wont work.
- Was the Message-ID header in the email modified? The Message-ID must be consistent and unchanged.
Need more help? Reach out to us via the Contact Us details at %{base_url}/about
2014-08-14 02:47:21 +08:00
email_reject_old_destination:
title: "Email Reject Old Destination"
subject_template: "[%{email_prefix}] Email issue -- You are trying to reply to an old notification"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
We only accept replies to original notifications for %{number_of_days} days. Please [visit the topic](%{short_url}) to continue the conversation.
email_reject_topic_not_found:
title: "Email Reject Topic Not Found"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Topic Not Found"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
The topic you are replying to no longer exists -- perhaps it was deleted? If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_topic_closed:
title: "Email Reject Topic Closed"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Topic Closed"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
The topic you are replying to is currently closed and no longer accepting replies. If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_auto_generated:
title: "Email Reject Auto Generated"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- Auto Generated Reply"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
Your email was marked as "auto generated", which means it was automatically created by a computer instead of being typed by a human; we can't accept those kinds of emails. If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_unrecognized_error:
title: "Email Reject Unrecognized Error"
subject_template: "[%{email_prefix}] Email issue -- Unrecognized Error"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
There was an unrecognized error while processing your email and it wasn't posted. You should try again, or [contact a staff member](%{base_url}/about).
email_reject_attachment:
title: "Email Attachment Rejected"
subject_template: "[%{email_prefix}] Email issue -- Attachment Rejected"
text_body_template: |
Unfortunately some attachments in your email message to %{destination} (titled %{former_title}) were rejected.
Details:
%{rejected_errors}
If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_reply_not_allowed:
title: "Email Reject Reply Not Allowed"
subject_template: "[%{email_prefix}] Email issue -- Reply Not Allowed"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
You don't have permissions to reply to the topic. If you believe this is an error, [contact a staff member](%{base_url}/about).
email_reject_reply_to_digest:
title: "Email Reject Reply To Summary"
subject_template: "[%{email_prefix}] Email issue -- Reply to Summary"
text_body_template: |
We're sorry, but your email message to %{destination} (titled %{former_title}) didn't work.
You replied to a Summary email, which is not accepted.
If you believe this is an error, [contact a staff member](%{base_url}/about).
email_error_notification:
title: "Email Error Notification"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Email issue -- POP authentication error"
text_body_template: |
2016-01-29 07:41:58 +08:00
Unfortunately, there was an authentication error while polling mails from the POP server.
Please make sure you have properly configured the POP credentials in [the site settings](%{base_url}/admin/site_settings/category/email).
2016-01-29 07:41:58 +08:00
If there is a web UI for the POP email account, you may need to log in on the web and check your settings there.
email_revoked:
title: "Email Revoked"
subject_template: "Is your email address correct?"
text_body_template: |
2018-08-04 08:25:52 +08:00
Were sorry, but were having trouble reaching you via email. Our last few emails to you have all bounced back as undeliverable.
Can you make sure [your email address](%{base_url}/my/preferences/email) is valid and working? You may also wish to add our email address to your address book / contact list to improve deliverability.
email_bounced: |
The message to %{email} bounced.
### Details
``` text
%{raw}
```
ignored_users_summary:
title: "Ignored User passed threshold"
subject_template: "A user is being ignored by many other users"
text_body_template: |
Hello,
This is an automated message from %{site_name} to inform you that @%{username} has been ignored by %{ignores_threshold} users. This could indicate a problem is developing in your community.
You might want to [review recent posts](%{base_url}/u/%{username}/summary) from this user, and potentially other users in the [ignored and muted user report](%{base_url}/admin/reports/top_ignored_users).
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
too_many_spam_flags:
title: "Too Many Spam Flags"
2016-06-08 14:42:26 +08:00
subject_template: "New account on hold"
text_body_template: |
Hello,
2016-05-14 06:11:35 +08:00
This is an automated message from %{site_name} to let you know that your posts have been temporarily hidden because they were flagged by the community.
2018-08-04 08:25:52 +08:00
As a precautionary measure, your new account has been silenced and will be unable to create replies or topics until a staff member can review your account. We apologize for the inconvenience.
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
2016-06-08 14:42:26 +08:00
too_many_tl3_flags:
title: "Too Many TL3 Flags"
2016-06-08 14:42:26 +08:00
subject_template: "New account on hold"
text_body_template: |
Hello,
2016-06-08 14:42:26 +08:00
This is an automated message from %{site_name} to let you know you that your account has been placed on hold due to a large number of community flags.
As a precautionary measure, your new account has been silenced from creating new replies or topics until a staff member can review your account. We apologize for the inconvenience.
2016-06-08 14:42:26 +08:00
For additional guidance, please refer to our [community guidelines](%{base_url}/guidelines).
2017-11-11 01:18:08 +08:00
silenced_by_staff:
title: "Silenced by Staff"
2016-05-14 06:11:35 +08:00
subject_template: "Account temporarily on hold"
text_body_template: |
Hello,
2016-05-14 06:11:35 +08:00
This is an automated message from %{site_name} to let you know that your account has been temporarily placed on hold as a precautionary measure.
2016-05-14 06:11:35 +08:00
Please do continue to browse, but you won't be able to reply or create topics until a [staff member](%{base_url}/about) reviews your most recent posts. We apologize for the inconvenience.
2016-05-14 06:11:35 +08:00
For additional guidance, refer to our [community guidelines](%{base_url}/guidelines).
2017-11-11 01:18:08 +08:00
user_automatically_silenced:
title: "User Automatically Silenced"
subject_template: "New user %{username} silenced by community flags"
text_body_template: |
2014-06-05 04:39:48 +08:00
This is an automated message.
2017-11-11 01:18:08 +08:00
The new user [%{username}](%{user_url}) was automatically silenced because multiple users flagged %{username}'s post(s).
2017-11-11 01:18:08 +08:00
Please [review the flags](%{base_url}/admin/flags). If %{username} was incorrectly silenced from posting, click the unsilence button on [the admin page for this user](%{user_url}).
This threshold can be changed via the `silence_new_user` site settings.
spam_post_blocked:
title: "Spam Post Blocked"
subject_template: "New user %{username} posts blocked due to repeated links"
text_body_template: |
2014-06-05 04:39:48 +08:00
This is an automated message.
The new user [%{username}](%{user_url}) tried to create multiple posts with links to %{domains}, but those posts were blocked to avoid spam. The user is still able to create new posts that do not link to %{domains}.
Please [review the user](%{user_url}).
This can be modified via the `newuser_spam_host_threshold` and `allowed_spam_host_domains` site settings. Consider adding %{domains} to the allowlist if they should be exempt.
2017-11-11 01:18:08 +08:00
unsilenced:
title: "Unsilenced"
2016-05-14 06:11:35 +08:00
subject_template: "Account no longer on hold"
text_body_template: |
Hello,
2016-05-14 06:11:35 +08:00
This is an automated message from %{site_name} to let you know that your account is no longer on hold after staff review.
You can now create new replies and topics again. Thank you for your patience.
pending_users_reminder:
title: "Pending Users Reminder"
subject_template:
one: "%{count} user waiting for approval"
2013-09-07 04:37:49 +08:00
other: "%{count} users waiting for approval"
text_body_template: |
2013-09-07 04:37:49 +08:00
There are new user signups waiting to be approved (or rejected) before they can access this forum.
[Please review them](%{base_url}/review).
download_remote_images_disabled:
title: "Download Remote Images Disabled"
subject_template: "Downloading remote images disabled"
text_body_template: "The `download_remote_images_to_local` setting was disabled because the disk space limit at `download_remote_images_threshold` was reached."
dashboard_problems:
title: "Dashboard Problems"
2019-01-17 07:11:06 +08:00
subject_template: "New advice on your site dashboard"
text_body_template: |
2019-01-17 07:11:06 +08:00
We have some new advice and recommendations for you based on your current site settings.
2019-01-17 07:11:06 +08:00
[Visit your site dashboard](%{base_url}/admin) to see it.
If nothing is visible on your dashboard, another staff member may have already acted on this advice. A list of staff actions can be found in your [Staff Action Logs](%{base_url}/admin/logs/staff_action_logs).
new_user_of_the_month:
title: "You're a New User of the Month!"
subject_template: "You're a New User of the Month!"
text_body_template: |
2017-05-02 08:38:20 +08:00
Congratulations, you've earned the **New User of the Month award for %{month_year}**. :trophy:
This award is only granted to two new users per month, and it will be permanently visible on [the badges page](%{url}).
2017-05-02 08:38:20 +08:00
You've quickly become a valuable member of our community. Thanks for joining, and keep up the great work!
queued_posts_reminder:
title: "Queued Posts Reminder"
subject_template:
one: "%{count} post waiting to be reviewed"
other: "%{count} posts waiting to be reviewed"
text_body_template: |
Hello,
Posts from new users were held for moderation and are currently waiting to be reviewed. [Approve or reject them here](%{base_url}/review?type=ReviewableQueuedPost).
unsubscribe_link: |
To unsubscribe from these emails, [click here](%{unsubscribe_url}).
unsubscribe_link_and_mail: |
To unsubscribe from these emails, [click here](%{unsubscribe_url}).
unsubscribe_mailing_list: |
2016-07-29 23:57:24 +08:00
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click here](%{unsubscribe_url}).
subject_re: "Re: "
subject_pm: "[PM] "
email_from: "%{user_name} via %{site_name}"
email_from_without_site: "%{user_name}"
2013-02-06 03:16:51 +08:00
user_notifications:
previous_discussion: "Previous Replies"
reached_limit:
one: "Heads up: We send a maximum of %{count} daily email. Check the site to see the ones that might be held back."
other: "Heads up: We send a maximum of %{count} daily emails. Check the site to see the ones that might be held back. PS thanks for being popular!"
in_reply_to: "In Reply To"
unsubscribe:
2013-02-06 03:16:51 +08:00
title: "Unsubscribe"
description: "Not interested in getting these emails? No problem! Click below to unsubscribe instantly:"
header_instructions: ""
reply_by_email: "[Visit Topic](%{base_url}%{url}) or reply to this email to respond."
2018-06-12 06:54:39 +08:00
reply_by_email_pm: "[Visit Message](%{base_url}%{url}) or reply to this email to respond to %{participants}."
only_reply_by_email: "Reply to this email to respond."
2018-06-12 06:54:39 +08:00
only_reply_by_email_pm: "Reply to this email to respond to %{participants}."
visit_link_to_respond: "[Visit Topic](%{base_url}%{url}) to respond."
2018-06-12 06:54:39 +08:00
visit_link_to_respond_pm: "[Visit Message](%{base_url}%{url}) to respond to %{participants}."
reply_above_line: "## Please type your reply above this line. ##"
posted_by: "Posted by %{username} on %{post_date}"
2018-06-12 06:54:39 +08:00
pm_participants: "Participants: %{participants}"
invited_group_to_private_message_body: |
%{username} invited @%{group_name} to a message
> **[%{topic_title}](%{topic_url})**
>
> %{topic_excerpt}
at
> %{site_title} -- %{site_description}
To join the message, click the link below:
%{topic_url}
invited_to_private_message_body: |
%{username} invited you to a message
2013-02-06 03:16:51 +08:00
> **[%{topic_title}](%{topic_url})**
>
> %{topic_excerpt}
at
> %{site_title} -- %{site_description}
To join the message, click the link below:
%{topic_url}
invited_to_topic_body: |
%{username} invited you to a discussion
> **[%{topic_title}](%{topic_url})**
>
> %{topic_excerpt}
2013-02-06 03:16:51 +08:00
at
> %{site_title} -- %{site_description}
To join the discussion, click the link below:
%{topic_url}
user_invited_to_private_message_pm_group:
title: "User Invited Group to PM"
subject_template: "[%{email_prefix}] %{username} invited @%{group_name} to a message '%{topic_title}'"
text_body_template: |
%{header_instructions}
%{message}
%{respond_instructions}
user_invited_to_private_message_pm:
title: "User Invited to PM"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{username} invited you to a message '%{topic_title}'"
text_body_template: |
%{header_instructions}
%{message}
%{respond_instructions}
user_invited_to_private_message_pm_staged:
title: "User Invited to PM Staged"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{username} invited you to a message '%{topic_title}'"
text_body_template: |
%{header_instructions}
%{message}
%{respond_instructions}
user_invited_to_topic:
title: "User Invited to Topic"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{username} invited you to '%{topic_title}'"
text_body_template: |
%{header_instructions}
%{message}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_replied:
title: "User Replied"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
2013-02-06 03:16:51 +08:00
text_body_template: |
%{header_instructions}
2013-02-06 03:16:51 +08:00
%{message}
%{context}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_replied_pm:
title: "User Replied PM"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_quoted:
title: "User Quoted"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_linked:
title: "User Linked"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
2013-02-06 03:16:51 +08:00
text_body_template: |
%{header_instructions}
2013-02-06 03:16:51 +08:00
%{message}
%{context}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_mentioned:
title: "User Mentioned"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
2013-02-06 03:16:51 +08:00
text_body_template: |
%{header_instructions}
2013-02-06 03:16:51 +08:00
%{message}
%{context}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_mentioned_pm:
title: "User Mentioned PM"
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_group_mentioned:
title: "User Group Mentioned"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_group_mentioned_pm:
title: "User Group Mentioned PM"
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_group_mentioned_pm_group:
title: "User Group Mentioned PM"
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_posted:
title: "User Posted"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
2016-07-08 00:23:19 +08:00
%{respond_instructions}
user_watching_first_post:
title: "User Watching First Post"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] %{topic_title}"
2016-07-08 00:23:19 +08:00
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
user_posted_pm:
title: "User Posted PM"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] [PM] %{topic_title}"
text_body_template: |
%{header_instructions}
%{message}
%{context}
%{respond_instructions}
2013-02-06 03:16:51 +08:00
user_posted_pm_staged:
title: "User Posted PM Staged"
subject_template: "%{optional_re}%{topic_title}"
text_body_template: |
%{message}
account_suspended:
title: "Account Suspended"
subject_template: "[%{email_prefix}] Your account has been suspended"
text_body_template: |
You have been suspended from the forum until %{suspended_till}.
Reason - %{reason}
account_suspended_forever:
title: "Account Suspended"
subject_template: "[%{email_prefix}] Your account has been suspended"
text_body_template: |
You have been suspended from the forum.
Reason - %{reason}
account_silenced:
title: "Account Silenced"
subject_template: "[%{email_prefix}] Your account has been silenced"
text_body_template: |
You have been silenced from the forum until %{silenced_till}.
Reason - %{reason}
account_silenced_forever:
title: "Account Silenced"
subject_template: "[%{email_prefix}] Your account has been silenced"
text_body_template: |
You have been silenced from the forum.
Reason - %{reason}
account_exists:
title: "Account already exists"
subject_template: "[%{email_prefix}] Account already exists"
text_body_template: |
You just tried to create an account at %{site_name}, or tried to change the email of an account to %{email}. However, an account already exists for %{email}.
If you forgot your password, [reset it now](%{base_url}/password-reset).
If you didnt try to create an account for %{email} or change your email address, dont worry you can safely ignore this message.
If you have any questions, [contact our friendly staff](%{base_url}/about).
account_second_factor_disabled:
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
title: "Two-Factor Authentication disabled"
subject_template: "[%{email_prefix}] Two-Factor Authentication disabled"
text_body_template: |
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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.
2018-03-22 18:39:03 +08:00
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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).
2013-02-06 03:16:51 +08:00
digest:
2014-11-15 06:16:31 +08:00
why: "A brief summary of %{site_link} since your last visit on %{last_seen_at}"
since_last_visit: "Since your last visit"
new_topics: "New Topics"
unread_notifications: "Unread Notifications"
unread_high_priority: "Unread High Priority Notifications"
liked_received: "Likes Received"
new_users: "New Users"
popular_topics: "Popular Topics"
follow_topic: "Follow this topic"
2016-11-19 07:17:34 +08:00
join_the_discussion: "Read More"
popular_posts: "Popular Posts"
more_new: "New for you"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Summary"
unsubscribe: "This summary is sent from %{site_link} when we haven't seen you in a while. Change %{email_preferences_link}, or %{unsubscribe_link} to unsubscribe."
your_email_settings: "your email settings"
click_here: "click here"
2020-01-18 08:16:21 +08:00
from: "%{site_name}"
preheader: "A brief summary since your last visit on %{last_seen_at}"
custom:
html:
header: ""
below_post_1: ""
below_post_2: ""
below_post_3: ""
below_post_4: ""
below_post_5: ""
above_popular_topics: ""
below_popular_topics: ""
above_footer: ""
below_footer: ""
text:
below_post_1: ""
below_post_2: ""
below_post_3: ""
below_post_4: ""
below_post_5: ""
above_popular_topics: ""
below_popular_topics: ""
above_footer: ""
below_footer: ""
2013-02-06 03:16:51 +08:00
forgot_password:
title: "Forgot Password"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Password reset"
2013-02-06 03:16:51 +08:00
text_body_template: |
Somebody asked to reset your password on [%{site_name}](%{base_url}).
If it was not you, you can safely ignore this email.
2013-02-06 03:16:51 +08:00
Click the following link to choose a new password:
2017-03-29 02:27:54 +08:00
%{base_url}/u/password-reset/%{email_token}
2013-02-06 03:16:51 +08:00
email_login:
2018-03-22 19:19:34 +08:00
title: "Log in via link"
subject_template: "[%{email_prefix}] Log in via link"
text_body_template: |
2018-03-22 19:19:34 +08:00
Here's your link to log in at [%{site_name}](%{base_url}).
2018-03-22 19:19:34 +08:00
If you did not request this link, you can safely ignore this email.
2018-03-22 19:19:34 +08:00
Click the following link to log in:
%{base_url}/session/email-login/%{email_token}
set_password:
title: "Set Password"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Set Password"
text_body_template: |
Somebody asked to add a password to your account on [%{site_name}](%{base_url}). Alternatively, you can log in using any supported online service (Google, Facebook, etc) that is associated with this validated email address.
If you did not make this request, you can safely ignore this email.
Click the following link to choose a password:
2017-03-29 02:27:54 +08:00
%{base_url}/u/password-reset/%{email_token}
admin_login:
title: "Admin Login"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Login"
text_body_template: |
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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.
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
Click the following link to log in:
%{base_url}/session/email-login/%{email_token}
account_created:
title: "Account Created"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Your New Account"
text_body_template: |
A new account was created for you at %{site_name}
Click the following link to choose a password for your new account:
2017-03-29 02:27:54 +08:00
%{base_url}/u/password-reset/%{email_token}
confirm_new_email:
title: "Confirm New Email"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Confirm your new email address"
2013-02-06 03:16:51 +08:00
text_body_template: |
Confirm your new email address for %{site_name} by clicking on the following link:
%{base_url}/u/confirm-new-email/%{email_token}
2013-02-06 03:16:51 +08:00
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
If you did not request this change, please contact a [site admin](%{base_url}/about).
confirm_new_email_via_admin:
title: "Confirm New Email"
subject_template: "[%{email_prefix}] Confirm your new email address"
text_body_template: |
Confirm your new email address for %{site_name} by clicking on the following link:
%{base_url}/u/confirm-new-email/%{email_token}
Fix i18n issues reported on Crowdin (#10925) * Pluralize `discourse_narrative_bot.dice.not_enough_dice` The number of dice requires a pluralized string. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/278/en-ar#51346 * Always use "two-factor" instead of "second factor" or "two factor" Using different terms for the same thing is quite confusing. Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40096 * Remove whitespace before ellipsis for consistency Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#53978 * Remove unused strings from locale file * Correct grammar in `site_settings.review_media_unless_trust_level` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54018 * Correct grammar in `reviewables.reasons.contains_media` Fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54020 * Correct grammar in user notifications It also adds a link to the /about page in order to give the user a clue who the site admins are. This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#54084 * Use "log in" instead of "login" when it's a verb This fixes multiple issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-nl#40940 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#47858 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-nl#49458 * Replace "Github" with "GitHub" * Remove "discourse.org" from title of 503 error page * Replace weirdly formatted multi line string * Pluralize `js.composer.group_mentioned_limit` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41158 * Remove unused string and pluralize `js.topic.feature_topic.confirm_pin_globally` This kinda fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42114 as `js.topic.feature_topic.confirm_pin` wasn't used anymore. * Pluralize `js.user.second_factor_backup.remaining_codes` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40054 * Pluralize `js.composer.error.tags_missing` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41184 * Pluralize `js.post.errors.too_many_dragged_and_dropped_files` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42408 * Remove unused `js.posts_long` and `js.likes_long` This fixes the following issues in an unexpected way: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42974 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#42994 * Pluralize `js.bootstrap_mode_enabled` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#38726 * Remove unused `long_form` from `post_action_types` This more or less fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-ar#47158 * Pluralize `js.presence.replying` and `js.presence.replying` This fixes the following issues: * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51588 * https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/282/en-ar#51590 * Pluralize `js.user.second_factor_backup.manage` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40044 * Stop using concatenated strings for "Recently Used Devices" This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#40308 * Pluralize `js.category_row.topic_count` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41056 * Pluralize `js.select_kit.invalid_selection_length` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41072 * Pluralize `js.notifications.membership_request_consolidated` This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-ar#41416
2020-10-16 21:24:58 +08:00
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"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Confirm your current email address"
text_body_template: |
Before we can change your email address, we need you to confirm that you control
the current email account. After you complete this step, we will have you confirm
the new email address.
Confirm your current email address for %{site_name} by clicking on the following link:
%{base_url}/u/confirm-old-email/%{email_token}
confirm_old_email_add:
title: "Confirm Old Email (Add)"
subject_template: "[%{email_prefix}] Confirm your current email address"
text_body_template: |
Before we can add a new email address, we need you to confirm that you control
the current email account. After you complete this step, we will have you confirm
the new email address.
Confirm your current email address for %{site_name} by clicking on the following link:
%{base_url}/u/confirm-old-email/%{email_token}
notify_old_email:
title: "Notify Old Email"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Your email address has been changed"
text_body_template: |
This is an automated message to let you know that your email address for
%{site_name} has been changed. If this was done in error, please contact
a site administrator.
Your email address has been changed to:
%{new_email}
notify_old_email_add:
title: "Notify Old Email (Add)"
subject_template: "[%{email_prefix}] A new email address has been added"
text_body_template: |
This is an automated message to let you know that an email address for
%{site_name} has been added. If this was done in error, please contact
a site administrator.
Your added email address is:
%{new_email}
signup_after_approval:
title: "Signup After Approval"
subject_template: "You've been approved on %{site_name}!"
text_body_template: |
Welcome to %{site_name}!
2014-03-18 03:07:21 +08:00
A staff member approved your account on %{site_name}.
You can now access your new account by logging in at:
%{base_url}
If the above link is not clickable, try copying and pasting it into the address bar of your web browser.
%{new_user_tips}
We believe in [civilized community behavior](%{base_url}/guidelines) at all times.
Enjoy your stay!
signup_after_reject:
title: "Signup After Reject"
subject_template: "You've been rejected on %{site_name}"
text_body_template: |
A staff member rejected your account on %{site_name}.
%{reject_reason}
2013-02-06 03:16:51 +08:00
signup:
title: "Signup"
2017-03-21 21:11:15 +08:00
subject_template: "[%{email_prefix}] Confirm your new account"
2013-02-06 03:16:51 +08:00
text_body_template: |
Welcome to %{site_name}!
2013-02-06 03:16:51 +08:00
Click the following link to confirm and activate your new account:
2017-03-29 02:27:54 +08:00
%{base_url}/u/activate-account/%{email_token}
2013-02-06 03:16:51 +08:00
If the above link is not clickable, try copying and pasting it into the address bar of your web browser.
activation_reminder:
title: "Activation Reminder"
subject_template: "[%{email_prefix}] Reminder to confirm your account"
text_body_template: |
Welcome to %{site_name}!
This is a friendly reminder to activate your account.
Click the following link to confirm and activate your new account:
%{base_url}/u/activate-account/%{email_token}
If the above link is not clickable, try copying and pasting it into the address bar of your web browser.
suspicious_login:
title: "New Login Alert"
subject_template: "[%{site_name}] New Login from %{location}"
text_body_template: |
Hello,
2018-10-28 09:17:40 +08:00
We noticed a login from a device or location you dont usually use. Was this you?
2018-10-28 09:17:40 +08:00
- Location: %{location} (%{client_ip})
- Browser: %{browser}
- Device: %{device} %{os}
If this was you, great! Theres nothing else you need to do.
2018-11-05 19:58:20 +08:00
If this was not you, please [review your existing sessions](%{base_url}/my/preferences/account) and consider changing your password.
post_approved:
title: "Your post was approved"
subject_template: "[%{site_name}] Your post was approved"
text_body_template: |
Hello,
This is an automated message from %{site_name} to let you know that [your post](%{base_url}%{post_url}) was approved.
page_forbidden:
title: "Oops! That page is private."
site_setting_missing: "`%{name}` site setting has to be set."
2013-02-22 19:33:35 +08:00
page_not_found:
2016-02-24 18:00:02 +08:00
title: "Oops! That page doesnt exist or is private."
2014-06-25 04:16:16 +08:00
popular_topics: "Popular"
recent_topics: "Recent"
see_more: "More"
search_title: "Search this site"
search_button: "Search"
offline:
title: "Cannot load app"
offline_page_message: "It looks like you are offline! Please check your network connection and try again."
login_required:
welcome_message: |
## [Welcome to %{title}](#welcome)
2014-08-12 17:36:34 +08:00
An account is required. Please create an account or log in to continue.
welcome_message_invite_only: |
## [Welcome to %{title}](#welcome)
An account is required. Please ask an existing member for an invite or log in to continue.
deleted: "deleted"
image: "image"
upload:
2014-05-01 13:07:02 +08:00
edit_reason: "downloaded local copies of images"
unauthorized: "Sorry, the file you are trying to upload is not authorized (authorized extensions: %{authorized_extensions})."
pasted_image_filename: "Pasted image"
2014-04-15 04:55:57 +08:00
store_failure: "Failed to store upload #%{upload_id} for user #%{user_id}."
file_missing: "Sorry, you must provide a file to upload."
empty: "Sorry, but the file you provided is empty."
FEATURE: Initial implementation of direct S3 uploads with uppy and stubs (#13787) This adds a few different things to allow for direct S3 uploads using uppy. **These changes are still not the default.** There are hidden `enable_experimental_image_uploader` and `enable_direct_s3_uploads` settings that must be turned on for any of this code to be used, and even if they are turned on only the User Card Background for the user profile actually uses uppy-image-uploader. A new `ExternalUploadStub` model and database table is introduced in this pull request. This is used to keep track of uploads that are uploaded to a temporary location in S3 with the direct to S3 code, and they are eventually deleted a) when the direct upload is completed and b) after a certain time period of not being used. ### Starting a direct S3 upload When an S3 direct upload is initiated with uppy, we first request a presigned PUT URL from the new `generate-presigned-put` endpoint in `UploadsController`. This generates an S3 key in the `temp` folder inside the correct bucket path, along with any metadata from the clientside (e.g. the SHA1 checksum described below). This will also create an `ExternalUploadStub` and store the details of the temp object key and the file being uploaded. Once the clientside has this URL, uppy will upload the file direct to S3 using the presigned URL. Once the upload is complete we go to the next stage. ### Completing a direct S3 upload Once the upload to S3 is done we call the new `complete-external-upload` route with the unique identifier of the `ExternalUploadStub` created earlier. Only the user who made the stub can complete the external upload. One of two paths is followed via the `ExternalUploadManager`. 1. If the object in S3 is too large (currently 100mb defined by `ExternalUploadManager::DOWNLOAD_LIMIT`) we do not download and generate the SHA1 for that file. Instead we create the `Upload` record via `UploadCreator` and simply copy it to its final destination on S3 then delete the initial temp file. Several modifications to `UploadCreator` have been made to accommodate this. 2. If the object in S3 is small enough, we download it. When the temporary S3 file is downloaded, we compare the SHA1 checksum generated by the browser with the actual SHA1 checksum of the file generated by ruby. The browser SHA1 checksum is stored on the object in S3 with metadata, and is generated via the `UppyChecksum` plugin. Keep in mind that some browsers will not generate this due to compatibility or other issues. We then follow the normal `UploadCreator` path with one exception. To cut down on having to re-upload the file again, if there are no changes (such as resizing etc) to the file in `UploadCreator` we follow the same copy + delete temp path that we do for files that are too large. 3. Finally we return the serialized upload record back to the client There are several errors that could happen that are handled by `UploadsController` as well. Also in this PR is some refactoring of `displayErrorForUpload` to handle both uppy and jquery file uploader errors.
2021-07-28 06:42:25 +08:00
failed: "Sorry, but your upload failed. Please try again."
png_to_jpg_conversion_failure_message: "An error happened when converting from PNG to JPG."
optimize_failure_message: "An error occurred while optimizing the uploaded image."
FEATURE: Initial implementation of direct S3 uploads with uppy and stubs (#13787) This adds a few different things to allow for direct S3 uploads using uppy. **These changes are still not the default.** There are hidden `enable_experimental_image_uploader` and `enable_direct_s3_uploads` settings that must be turned on for any of this code to be used, and even if they are turned on only the User Card Background for the user profile actually uses uppy-image-uploader. A new `ExternalUploadStub` model and database table is introduced in this pull request. This is used to keep track of uploads that are uploaded to a temporary location in S3 with the direct to S3 code, and they are eventually deleted a) when the direct upload is completed and b) after a certain time period of not being used. ### Starting a direct S3 upload When an S3 direct upload is initiated with uppy, we first request a presigned PUT URL from the new `generate-presigned-put` endpoint in `UploadsController`. This generates an S3 key in the `temp` folder inside the correct bucket path, along with any metadata from the clientside (e.g. the SHA1 checksum described below). This will also create an `ExternalUploadStub` and store the details of the temp object key and the file being uploaded. Once the clientside has this URL, uppy will upload the file direct to S3 using the presigned URL. Once the upload is complete we go to the next stage. ### Completing a direct S3 upload Once the upload to S3 is done we call the new `complete-external-upload` route with the unique identifier of the `ExternalUploadStub` created earlier. Only the user who made the stub can complete the external upload. One of two paths is followed via the `ExternalUploadManager`. 1. If the object in S3 is too large (currently 100mb defined by `ExternalUploadManager::DOWNLOAD_LIMIT`) we do not download and generate the SHA1 for that file. Instead we create the `Upload` record via `UploadCreator` and simply copy it to its final destination on S3 then delete the initial temp file. Several modifications to `UploadCreator` have been made to accommodate this. 2. If the object in S3 is small enough, we download it. When the temporary S3 file is downloaded, we compare the SHA1 checksum generated by the browser with the actual SHA1 checksum of the file generated by ruby. The browser SHA1 checksum is stored on the object in S3 with metadata, and is generated via the `UppyChecksum` plugin. Keep in mind that some browsers will not generate this due to compatibility or other issues. We then follow the normal `UploadCreator` path with one exception. To cut down on having to re-upload the file again, if there are no changes (such as resizing etc) to the file in `UploadCreator` we follow the same copy + delete temp path that we do for files that are too large. 3. Finally we return the serialized upload record back to the client There are several errors that could happen that are handled by `UploadsController` as well. Also in this PR is some refactoring of `displayErrorForUpload` to handle both uppy and jquery file uploader errors.
2021-07-28 06:42:25 +08:00
download_failure: "Downloading the file from the external provider failed."
FEATURE: Uppy direct S3 multipart uploads in composer (#14051) This pull request introduces the endpoints required, and the JavaScript functionality in the `ComposerUppyUpload` mixin, for direct S3 multipart uploads. There are four new endpoints in the uploads controller: * `create-multipart.json` - Creates the multipart upload in S3 along with an `ExternalUploadStub` record, storing information about the file in the same way as `generate-presigned-put.json` does for regular direct S3 uploads * `batch-presign-multipart-parts.json` - Takes a list of part numbers and the unique identifier for an `ExternalUploadStub` record, and generates the presigned URLs for those parts if the multipart upload still exists and if the user has permission to access that upload * `complete-multipart.json` - Completes the multipart upload in S3. Needs the full list of part numbers and their associated ETags which are returned when the part is uploaded to the presigned URL above. Only works if the user has permission to access the associated `ExternalUploadStub` record and the multipart upload still exists. After we confirm the upload is complete in S3, we go through the regular `UploadCreator` flow, the same as `complete-external-upload.json`, and promote the temporary upload S3 into a full `Upload` record, moving it to its final destination. * `abort-multipart.json` - Aborts the multipart upload on S3 and destroys the `ExternalUploadStub` record if the user has permission to access that upload. Also added are a few new columns to `ExternalUploadStub`: * multipart - Whether or not this is a multipart upload * external_upload_identifier - The "upload ID" for an S3 multipart upload * filesize - The size of the file when the `create-multipart.json` or `generate-presigned-put.json` is called. This is used for validation. When the user completes a direct S3 upload, either regular or multipart, we take the `filesize` that was captured when the `ExternalUploadStub` was first created and compare it with the final `Content-Length` size of the file where it is stored in S3. Then, if the two do not match, we throw an error, delete the file on S3, and ban the user from uploading files for N (default 5) minutes. This would only happen if the user uploads a different file than what they first specified, or in the case of multipart uploads uploaded larger chunks than needed. This is done to prevent abuse of S3 storage by bad actors. Also included in this PR is an update to vendor/uppy.js. This has been built locally from the latest uppy source at https://github.com/transloadit/uppy/commit/d613b849a6591083f8a0968aa8d66537e231bbcd. This must be done so that I can get my multipart upload changes into Discourse. When the Uppy team cuts a proper release, we can bump the package.json versions instead.
2021-08-25 06:46:54 +08:00
size_mismatch_failure: "The size of the file uploaded to S3 did not match the external upload stub's intended size. %{additional_detail}"
create_multipart_failure: "Failed to create multipart upload in the external store."
abort_multipart_failure: "Failed to abort multipart upload in the external store."
complete_multipart_failure: "Failed to complete multipart upload in the external store."
FEATURE: Uppy direct S3 multipart uploads in composer (#14051) This pull request introduces the endpoints required, and the JavaScript functionality in the `ComposerUppyUpload` mixin, for direct S3 multipart uploads. There are four new endpoints in the uploads controller: * `create-multipart.json` - Creates the multipart upload in S3 along with an `ExternalUploadStub` record, storing information about the file in the same way as `generate-presigned-put.json` does for regular direct S3 uploads * `batch-presign-multipart-parts.json` - Takes a list of part numbers and the unique identifier for an `ExternalUploadStub` record, and generates the presigned URLs for those parts if the multipart upload still exists and if the user has permission to access that upload * `complete-multipart.json` - Completes the multipart upload in S3. Needs the full list of part numbers and their associated ETags which are returned when the part is uploaded to the presigned URL above. Only works if the user has permission to access the associated `ExternalUploadStub` record and the multipart upload still exists. After we confirm the upload is complete in S3, we go through the regular `UploadCreator` flow, the same as `complete-external-upload.json`, and promote the temporary upload S3 into a full `Upload` record, moving it to its final destination. * `abort-multipart.json` - Aborts the multipart upload on S3 and destroys the `ExternalUploadStub` record if the user has permission to access that upload. Also added are a few new columns to `ExternalUploadStub`: * multipart - Whether or not this is a multipart upload * external_upload_identifier - The "upload ID" for an S3 multipart upload * filesize - The size of the file when the `create-multipart.json` or `generate-presigned-put.json` is called. This is used for validation. When the user completes a direct S3 upload, either regular or multipart, we take the `filesize` that was captured when the `ExternalUploadStub` was first created and compare it with the final `Content-Length` size of the file where it is stored in S3. Then, if the two do not match, we throw an error, delete the file on S3, and ban the user from uploading files for N (default 5) minutes. This would only happen if the user uploads a different file than what they first specified, or in the case of multipart uploads uploaded larger chunks than needed. This is done to prevent abuse of S3 storage by bad actors. Also included in this PR is an update to vendor/uppy.js. This has been built locally from the latest uppy source at https://github.com/transloadit/uppy/commit/d613b849a6591083f8a0968aa8d66537e231bbcd. This must be done so that I can get my multipart upload changes into Discourse. When the Uppy team cuts a proper release, we can bump the package.json versions instead.
2021-08-25 06:46:54 +08:00
external_upload_not_found: "The upload was not found in the external store. %{additional_detail}"
FEATURE: Initial implementation of direct S3 uploads with uppy and stubs (#13787) This adds a few different things to allow for direct S3 uploads using uppy. **These changes are still not the default.** There are hidden `enable_experimental_image_uploader` and `enable_direct_s3_uploads` settings that must be turned on for any of this code to be used, and even if they are turned on only the User Card Background for the user profile actually uses uppy-image-uploader. A new `ExternalUploadStub` model and database table is introduced in this pull request. This is used to keep track of uploads that are uploaded to a temporary location in S3 with the direct to S3 code, and they are eventually deleted a) when the direct upload is completed and b) after a certain time period of not being used. ### Starting a direct S3 upload When an S3 direct upload is initiated with uppy, we first request a presigned PUT URL from the new `generate-presigned-put` endpoint in `UploadsController`. This generates an S3 key in the `temp` folder inside the correct bucket path, along with any metadata from the clientside (e.g. the SHA1 checksum described below). This will also create an `ExternalUploadStub` and store the details of the temp object key and the file being uploaded. Once the clientside has this URL, uppy will upload the file direct to S3 using the presigned URL. Once the upload is complete we go to the next stage. ### Completing a direct S3 upload Once the upload to S3 is done we call the new `complete-external-upload` route with the unique identifier of the `ExternalUploadStub` created earlier. Only the user who made the stub can complete the external upload. One of two paths is followed via the `ExternalUploadManager`. 1. If the object in S3 is too large (currently 100mb defined by `ExternalUploadManager::DOWNLOAD_LIMIT`) we do not download and generate the SHA1 for that file. Instead we create the `Upload` record via `UploadCreator` and simply copy it to its final destination on S3 then delete the initial temp file. Several modifications to `UploadCreator` have been made to accommodate this. 2. If the object in S3 is small enough, we download it. When the temporary S3 file is downloaded, we compare the SHA1 checksum generated by the browser with the actual SHA1 checksum of the file generated by ruby. The browser SHA1 checksum is stored on the object in S3 with metadata, and is generated via the `UppyChecksum` plugin. Keep in mind that some browsers will not generate this due to compatibility or other issues. We then follow the normal `UploadCreator` path with one exception. To cut down on having to re-upload the file again, if there are no changes (such as resizing etc) to the file in `UploadCreator` we follow the same copy + delete temp path that we do for files that are too large. 3. Finally we return the serialized upload record back to the client There are several errors that could happen that are handled by `UploadsController` as well. Also in this PR is some refactoring of `displayErrorForUpload` to handle both uppy and jquery file uploader errors.
2021-07-28 06:42:25 +08:00
checksum_mismatch_failure: "The checksum of the file you uploaded does not match. The file contents may have changed on upload. Please try again."
cannot_promote_failure: "The upload cannot be completed, it may have already completed or previously failed."
size_zero_failure: "Sorry, it looks like something has gone wrong, the file you are trying to upload is 0 bytes. Please try again."
attachments:
too_large: "Sorry, the file you are trying to upload is too big (maximum size is %{max_size_kb}KB)."
too_large_humanized: "Sorry, the file you are trying to upload is too big (maximum size is %{max_size})."
images:
too_large: "Sorry, the image you are trying to upload is too big (maximum size is %{max_size_kb}KB), please resize it and try again."
too_large_humanized: "Sorry, the image you are trying to upload is too big (maximum size is %{max_size}), please resize it and try again."
larger_than_x_megapixels: "Sorry, the image you are trying to upload is too large (maximum dimension is %{max_image_megapixels}-megapixels), please resize it and try again."
size_not_found: "Sorry, but we couldn't determine the size of the image. Maybe your image is corrupted?"
placeholders:
too_large: "(image larger than %{max_size_kb}KB)"
too_large_humanized: "(image larger than %{max_size})"
avatar:
2016-03-29 03:04:18 +08:00
missing: "Sorry, we can't find any avatar associated with that email address. Can you try uploading it again?"
flag_reason:
sockpuppet: "A new user created a topic, and another new user at the same IP address (%{ip_address}) replied. See the <a href='%{base_path}/admin/site_settings/category/spam'>`flag_sockpuppets`</a> site setting."
spam_hosts: "This new user tried to create multiple posts with links to the same domain. All posts from this user that include links should be reviewed. See the <a href='%{base_path}/admin/site_settings/category/spam'>`newuser_spam_host_threshold`</a> site setting."
skipped_email_log:
2016-05-03 05:15:32 +08:00
exceeded_emails_limit: "Exceeded max_emails_per_day_per_user"
exceeded_bounces_limit: "Exceeded bounce_score_threshold"
mailing_list_no_echo_mode: "Mailing list notifications disabled for user's own posts"
user_email_no_user: "Can't find user with id %{user_id}"
user_email_post_not_found: "Can't find a post with id %{post_id}"
user_email_anonymous_user: "User is anonymous"
user_email_user_suspended_not_pm: "User is suspended, not a message"
user_email_seen_recently: "User was seen recently"
user_email_notification_already_read: "The notification this email is about has already been read"
user_email_notification_topic_nil: "post.topic is nil"
user_email_post_user_deleted: "User of the post has been deleted."
user_email_post_deleted: "post was deleted by the author"
user_email_user_suspended: "user was suspended"
user_email_already_read: "user has already read this post"
user_email_access_denied: "user is not allowed to see this post"
user_email_no_email: "No email associated with user id %{user_id}"
sender_message_blank: "message is blank"
sender_message_to_blank: "message.to is blank"
sender_text_part_body_blank: "text_part.body is blank"
2018-08-23 15:18:53 +08:00
sender_body_blank: "body is blank"
sender_post_deleted: "post has been deleted"
sender_message_to_invalid: "recipient has invalid email address"
sender_topic_deleted: "topic has been deleted"
group_smtp_post_deleted: "post has been deleted"
group_smtp_topic_deleted: "topic has been deleted"
group_smtp_disabled_for_group: "smtp has been disabled for the group"
color_schemes:
base_theme_name: "Base"
light: "Light"
dark: "Dark"
neutral: "Neutral"
grey_amber: "Grey Amber"
shades_of_blue: "Shades of Blue"
latte: "Latte"
summer: "Summer"
dark_rose: "Dark Rose"
wcag: "WCAG Light"
wcag_theme_name: "WCAG Light"
wcag_dark: "WCAG Dark"
wcag_dark_theme_name: "WCAG Dark"
default_theme_name: "Default"
light_theme_name: "Light"
dark_theme_name: "Dark"
neutral_theme_name: "Neutral"
grey_amber_theme_name: "Grey Amber"
shades_of_blue_theme_name: "Shades of Blue"
latte_theme_name: "Latte"
summer_theme_name: "Summer"
dark_rose_theme_name: "Dark Rose"
edit_this_page: "Edit this page"
csv_export:
boolean_yes: "Yes"
boolean_no: "No"
rate_limit_error: "Posts can be downloaded once per day, please try again tomorrow."
static_topic_first_reply: |
Edit the first post in this topic to change the contents of the %{page_name} page.
guidelines_topic:
title: "FAQ/Guidelines"
body: |
<a name="civilized"></a>
## [This is a Civilized Place for Public Discussion](#civilized)
Please treat this discussion forum with the same respect you would a public park. We, too, are a shared community resource &mdash; a place to share skills, knowledge and interests through ongoing conversation.
These are not hard and fast rules. They are guidelines to aid the human judgment of our community and keep this a kind, friendly place for civilized public discourse.
<a name="improve"></a>
## [Improve the Discussion](#improve)
Help us make this a great place for discussion by always adding something positive to the discussion, however small. If you are not sure your post adds to the conversation, think over what you want to say and try again later.
2017-03-17 04:36:23 +08:00
One way to improve the discussion is by discovering ones that are already happening. Spend time browsing the topics here before replying or starting your own, and youll have a better chance of meeting others who share your interests.
The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.
<a name="agreeable"></a>
## [Be Agreeable, Even When You Disagree](#agreeable)
You may wish to respond by disagreeing. Thats fine. But remember to _criticize ideas, not people_. Please avoid:
* Name-calling
* Ad hominem attacks
* Responding to a posts tone instead of its actual content
* Knee-jerk contradiction
Instead, provide thoughtful insights that improve the conversation.
<a name="participate"></a>
## [Your Participation Counts](#participate)
2017-03-17 04:36:23 +08:00
The conversations we have here set the tone for every new arrival. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be &mdash; and avoiding those that do not.
Discourse provides tools that enable the community to collectively identify the best (and worst) contributions: bookmarks, likes, flags, replies, edits, watching, muting and so forth. Use these tools to improve your own experience, and everyone elses, too.
2017-03-17 04:36:23 +08:00
Lets leave our community better than we found it.
<a name="flag-problems"></a>
## [If You See a Problem, Flag It](#flag-problems)
Moderators have special authority; they are responsible for this forum. But so are you. With your help, moderators can be community facilitators, not just janitors or police.
When you see bad behavior, dont reply. Replying encourages bad behavior by acknowledging it, consumes your energy, and wastes everyones time. _Just flag it_. If enough flags accrue, action will be taken, either automatically or by moderator intervention.
2017-03-17 04:36:23 +08:00
In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts; the moderators and site operators take no responsibility for any content posted by the community.
<a name="be-civil"></a>
## [Always Be Civil](#be-civil)
Nothing sabotages a healthy conversation like rudeness:
* Be civil. Dont post anything that a reasonable person would consider offensive, abusive, or hate speech.
* Keep it clean. Dont post anything obscene or sexually explicit.
* Respect each other. Dont harass or grief anyone, impersonate people, or expose their private information.
* Respect our forum. Dont post spam or otherwise vandalize the forum.
These are not concrete terms with precise definitions &mdash; avoid even the _appearance_ of any of these things. If youre unsure, ask yourself how you would feel if your post was featured on the front page of a major news site.
This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.
<a name="keep-tidy"></a>
## [Keep It Tidy](#keep-tidy)
Make the effort to put things in the right place, so that we can spend more time discussing and less cleaning up. So:
* Dont start a topic in the wrong category; please read the category definitions.
* Dont cross-post the same thing in multiple topics.
* Dont post no-content replies.
* Dont divert a topic by changing it midstream.
* Dont sign your posts &mdash; every post has your profile information attached to it.
2015-01-06 08:38:46 +08:00
Rather than posting “+1” or “Agreed”, use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a Linked Topic.
<a name="stealing"></a>
## [Post Only Your Own Stuff](#stealing)
You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someones intellectual property (software, video, audio, images), or for breaking any other law.
2015-01-17 21:45:36 +08:00
<a name="power"></a>
## [Powered by You](#power)
This site is operated by your [friendly local staff](%{base_path}/about) and *you*, the community. If you have any further questions about how things should work here, open a new topic in the [site feedback category](%{base_path}/c/site-feedback) and lets discuss! If theres a critical or urgent issue that cant be handled by a meta topic or flag, contact us via the [staff page](%{base_path}/about).
<a name="tos"></a>
## [Terms of Service](#tos)
Yes, legalese is boring, but we must protect ourselves &ndash; and by extension, you and your data &ndash; against unfriendly folks. We have a [Terms of Service](%{base_path}/tos) describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our [TOS](%{base_path}/tos).
tos_topic:
title: "Terms of Service"
body: |
These terms govern use of the Internet forum at <%{base_url}>. To use the forum, you must agree to these terms with %{company_name}, the company that runs the forum.
The company may offer other products and services, under different terms. These terms apply only to use of the forum.
Skip to:
- [Important Terms](#heading--important-terms)
- [Your Permission to Use the Forum](#heading--permission)
- [Conditions for Use of the Forum](#heading--conditions)
- [Acceptable Use](#heading--acceptable-use)
- [Content Standards](#heading--content-standards)
- [Enforcement](#heading--enforcement)
- [Your Account](#heading--your-account)
- [Your Content](#heading--your-content)
- [Your Responsibility](#heading--responsibility)
- [Disclaimers](#heading--disclaimers)
- [Limits on Liability](#heading--liability)
- [Feedback](#heading--feedback)
- [Termination](#heading--termination)
- [Disputes](#heading--disputes)
- [General Terms](#heading--general)
- [Contact](#heading--contact)
- [Changes](#heading--changes)
<h2 id="heading--important-terms"><a href="#heading--important-terms">Important Terms</a></h2>
***These terms include a number of important provisions that affect your rights and responsibilities, such as the disclaimers in [Disclaimers](#heading--disclaimers), limits on the company's liability to you in [Limits on Liability](#heading--liability), your agreement to cover the company for damages caused by your misuse of the forum in [Responsibility for Your Use](#heading--responsibility), and an agreement to arbitrate disputes in [Disputes](#heading--disputes).***
<h2 id="heading--permission"><a href="#heading--permission">Your Permission to Use the Forum</a></h2>
Subject to these terms, the company gives you permission to use the forum. Everyone needs to agree to these terms to use the forum.
<h2 id="heading--conditions"><a href="#heading--conditions">Conditions for Use of the Forum</a></h2>
Your permission to use the forum is subject to the following conditions:
1. You must be at least thirteen years old.
2. You may no longer use the forum if the company contacts you directly to say that you may not.
3. You must use the forum in accordance with [Acceptable Use](#heading--acceptable-use) and [Content Standards](#heading--content-standards).
<h2 id="heading--acceptable-use"><a href="#heading--acceptable-use">Acceptable Use</a></h2>
1. You may not break the law using the forum.
2. You may not use or try to use another's account on the forum without their specific permission.
3. You may not buy, sell, or otherwise trade in user names or other unique identifiers on the forum.
4. You may not send advertisements, chain letters, or other solicitations through the forum, or use the forum to gather addresses or other personal data for commercial mailing lists or databases.
5. You may not automate access to the forum, or monitor the forum, such as with a web crawler, browser plug-in or add-on, or other computer program that is not a web browser. You may crawl the forum to index it for a publicly available search engine, if you run one.
6. You may not use the forum to send e-mail to distribution lists, newsgroups, or group mail aliases.
7. You may not falsely imply that you're affiliated with or endorsed by the company.
8. You may not hyperlink to images or other non-hypertext content on the forum on other webpages.
9. You may not remove any marks showing proprietary ownership from materials you download from the forum.
10. You may not show any part of the forum on other websites with `<iframe>`.
2018-01-02 13:56:22 +08:00
11. You may not disable, avoid, or circumvent any security or access restrictions of the forum.
2018-01-02 13:56:22 +08:00
12. You may not strain infrastructure of the forum with an unreasonable volume of requests, or requests designed to impose an unreasonable load on information systems underlying the forum.
2018-01-02 13:56:22 +08:00
13. You may not impersonate others through the forum.
2018-01-02 13:56:22 +08:00
14. You may not encourage or help anyone in violation of these terms.
<h2 id="heading--content-standards"><a href="#heading--content-standards">Content Standards</a></h2>
1. You may not submit content to the forum that is illegal, offensive, or otherwise harmful to others. This includes content that is harassing, inappropriate, or abusive.
2. You may not submit content to the forum that violates the law, infringes anyone's intellectual property rights, violates anyone's privacy, or breaches agreements you have with others.
3. You may not submit content to the forum containing malicious computer code, such as computer viruses or spyware.
4. You may not submit content to the forum as a mere placeholder, to hold a particular address, user name, or other unique identifier.
5. You may not use the forum to disclose information that you don't have the right to disclose, like others' confidential or personal information.
<h2 id="heading--enforcement"><a href="#heading--enforcement">Enforcement</a></h2>
The company may investigate and prosecute violations of these terms to the fullest legal extent. The company may notify and cooperate with law enforcement authorities in prosecuting violations of the law and these terms.
The company reserves the right to change, redact, and delete content on the forum for any reason. If you believe someone has submitted content to the forum in violation of these terms, [contact us immediately](#heading--contact).
<h2 id="heading--your-account"><a href="#heading--your-account">Your Account</a></h2>
You must create and log into an account to use some features of the forum.
To create an account, you must provide some information about yourself. If you create an account, you agree to provide, at a minimum, a valid e-mail address, and to keep that address up-to-date. You may close your account at any time by e-mailing <%{contact_email}>.
You agree to be responsible for all action taken using your account, whether authorized by you or not, until you either close your account or notify the company that your account has been compromised. You agree to notify the company immediately if you suspect your account has been compromised. You agree to select a secure password for your account, and keep it secret.
The company may restrict, suspend, or close your account on the forum according to its policy for handling copyright-related takedown requests, or if the company reasonably believes that you've broken any rule in these terms.
<h2 id="heading--your-content"><a href="#heading--your-content">Your Content</a></h2>
Nothing in these terms gives the company any ownership rights in intellectual property that you share with the forum, such as your account information, posts, or other content you submit to the forum. Nothing in these terms gives you any ownership rights in the company's intellectual property, either.
Between you and the company, you remain solely responsible for content you submit to the forum. You agree not to wrongly imply that content you submit to the forum is sponsored or approved by the company. These terms do not obligate the company to store, maintain, or provide copies of content you submit, and to change it, according to these terms.
Content you submit to the forum belongs to you, and you decide what permission to give others for it. But at a minimum, you license the company to provide content that you submit to the forum to other users of the forum. That special license allows the company to copy, publish, and analyze content you submit to the forum.
When content you submit is removed from the forum, whether by you or by the company, the company's special license ends when the last copy disappears from the company's backups, caches, and other systems. Other licenses you apply to content you submit, such as [Creative Commons](https://creativecommons.org) licenses, may continue after your content is removed. Those licenses may give others, or the company itself, the right to share your content through the forum again.
Others who receive content you submit to the forum may violate the terms on which you license your content. You agree that the company will not be liable to you for those violations or their consequences.
<h2 id="heading--responsibility"><a href="#heading--responsibility">Your Responsibility</a></h2>
You agree to indemnify the company from legal claims by others related to your breach of these terms, or breach of these terms by others using your account on the forum. Both you and the company agree to notify the other side of any legal claims for which you might have to indemnify the company as soon as possible. If the company fails to notify you of a legal claim promptly, you won't have to indemnify the company for damages that you could have defended against or mitigated with prompt notice. You agree to allow the company to control investigation, defense, and settlement of legal claims for which you would have to indemnify the company, and to cooperate with those efforts. The company agrees not to agree to any settlement that admits fault for you or imposes obligations on you without your prior agreement.
<h2 id="heading--disclaimers"><a href="#heading--disclaimers">Disclaimers</a></h2>
***You accept all risk of using the forum and content on the forum. As far as the law allows, the company and its suppliers provide the forum as is, without any warranty whatsoever.***
The forum may hyperlink to and integrate forums and services run by others. The company does not make any warranty about services run by others, or content they may provide. Use of services run by others may be governed by other terms between you and the one running service.
<h2 id="heading--liability"><a href="#heading--liability">Limits on Liability</a></h2>
***Neither the company nor its suppliers will be liable to you for breach-of-contract damages their personnel could not have reasonably foreseen when you agreed to these terms.***
***As far as the law allows, the total liability to you for claims of any kind that are related to the forum or content on the forum will be limited to $50.***
<h2 id="heading--feedback"><a href="#heading--feedback">Feedback</a></h2>
The company welcomes your feedback and suggestions for the forum. See the [Contact](#heading--contact) section below for ways to get in touch with us.
You agree that the company will be free to act on feedback and suggestions you provide, and that the company won't have to notify you that your feedback was used, get your permission to use it, or pay you. You agree not to submit feedback or suggestions that you believe might be confidential or proprietary, to you or others.
<h2 id="heading--termination"><a href="#heading--termination">Termination</a></h2>
Either you or the company may end the agreement written out in these terms at any time. When our agreement ends, your permission to use the forum also ends.
The following provisions survive the end of our agreement: [Your Content](#heading--your-content), [Feedback](#heading--feedback), [Your Responsibility](#heading--responsibility), [Disclaimers](#heading--disclaimers), [Limits on Liability](#heading--liability), and [General Terms](#heading--general).
<h2 id="heading--disputes"><a href="#heading--disputes">Disputes</a></h2>
%{governing_law} will govern any dispute related to these terms or your use of the forum.
You and the company agree to seek injunctions related to these terms only in state or federal court in %{city_for_disputes}. Neither you nor the company will object to jurisdiction, forum, or venue in those courts.
***Other than to seek an injunction or for claims under the Computer Fraud and Abuse Act, you and the company will resolve any dispute by binding American Arbitration Association arbitration. Arbitration will follow the AAA's Commercial Arbitration Rules and Supplementary Procedures for Consumer Related Disputes. Arbitration will happen in %{city_for_disputes}. You will settle any dispute as an individual, and not as part of a class action or other representative proceeding, whether as the plaintiff or a class member. No arbitrator will consolidate any dispute with any other arbitration without the company's permission.***
Any arbitration award will include costs of the arbitration, reasonable attorneys' fees, and reasonable costs for witnesses. You and the company may enter arbitration awards in any court with jurisdiction.
<h2 id="heading--general"><a href="#heading--general">General Terms</a></h2>
If a provision of these terms is unenforceable as written, but could be changed to make it enforceable, that provision should be modified to the minimum extent necessary to make it enforceable. Otherwise, that provision should be removed.
You may not assign your agreement with the company. The company may assign your agreement to any affiliate of the company, any other company that obtains control of the company, or any other company that buys assets of the company related to the forum. Any attempted assignment against these terms has no legal effect.
Neither the exercise of any right under this Agreement, nor waiver of any breach of this Agreement, waives any other breach of this Agreement.
These terms embody all the terms of agreement between you and the company about use of the forum. These terms entirely replace any other agreements about your use of the forum, written or not.
<h2 id="heading--contact"><a href="#heading--contact">Contact</a></h2>
You may notify the company under these terms, and send questions to the company, at <%{contact_email}>.
The company may notify you under these terms using the e-mail address you provide for your account on the forum, or by posting a message to the homepage of the forum or your account page.
<h2 id="heading--changes"><a href="#heading--changes">Changes</a></h2>
The company last updated these terms on July 12, 2018, and may update these terms again. The company will post all updates to the forum. For updates that contain substantial changes, the company agrees to e-mail you, if you've created an account and provided a valid e-mail address. The company may also announce updates with special messages or alerts on the forum.
Once you get notice of an update to these terms, you must agree to the new terms in order to keep using the forum.
privacy_topic:
title: "Privacy Policy"
body: |
<a name="collect"></a>
## [What information do we collect?](#collect)
We collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here.
When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.
When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.
<a name="use"></a>
## [What do we use your information for?](#use)
Any of the information we collect from you may be used in one of the following ways:
* To personalize your experience &mdash; your information helps us to better respond to your individual needs.
* To improve our site &mdash; we continually strive to improve our site offerings based on the information and feedback we receive from you.
* To improve customer service &mdash; your information helps us to more effectively respond to your customer service requests and support needs.
* To send periodic emails &mdash; The email address you provide may be used to send you information, notifications that you request about changes to topics or in response to your user name, respond to inquiries, and/or other requests or questions.
<a name="protect"></a>
2014-07-29 11:22:28 +08:00
## [How do we protect your information?](#protect)
We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.
<a name="data-retention"></a>
## [What is your data retention policy?](#data-retention)
We will make a good faith effort to:
* Retain server logs containing the IP address of all requests to this server no more than 90 days.
* Retain the IP addresses associated with registered users and their posts no more than 5 years.
<a name="cookies"></a>
## [Do we use cookies?](#cookies)
Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business.
<a name="disclose"></a>
## [Do we disclose any information to outside parties?](#disclose)
We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.
<a name="third-party"></a>
## [Third party links](#third-party)
Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.
<a name="coppa"></a>
## [Children's Online Privacy Protection Act Compliance](#coppa)
2015-09-04 23:14:42 +08:00
Our site, products and services are all directed to people who are at least 13 years old or older. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA ([Children's Online Privacy Protection Act](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act)), do not use this site.
<a name="online"></a>
## [Online Privacy Policy Only](#online)
This online privacy policy applies only to information collected through our site and not to information collected offline.
<a name="consent"></a>
## [Your Consent](#consent)
By using our site, you consent to our web site privacy policy.
<a name="changes"></a>
## [Changes to our Privacy Policy](#changes)
If we decide to change our privacy policy, we will post those changes on this page.
This document is CC-BY-SA. It was last updated May 31, 2013.
2014-10-18 11:27:33 +08:00
badges:
mass_award:
errors:
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.
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.
editor:
name: Editor
description: First post edit
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted the first time you edit one of your posts. While you wont be able to edit your posts forever, editing is encouraged — you can improve the formatting, fix small mistakes, or add anything you missed when you originally posted. Edit to make your posts even better!
wiki_editor:
name: Wiki Editor
description: First wiki edit
long_description: |
This badge is granted the first time you edit one wiki post.
basic_user:
name: Basic
2018-06-26 08:34:47 +08:00
description: <a href="https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/">Granted</a> all essential community functions
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you reach trust level 1. Thanks for sticking around and reading a few topics to learn what our community is about. New user restrictions have been lifted; youve been granted all essential community abilities, such as personal messaging, flagging, wiki editing, and the ability to post multiple images and links.
member:
name: Member
2018-06-26 08:34:47 +08:00
description: <a href="https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/">Granted</a> invitations, group messaging, more likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you reach trust level 2. Thanks for participating over a period of weeks to truly join our community. You can now send invitations from your user page or individual topics, create group personal messages, and have more likes per day.
regular:
name: Regular
2018-06-26 08:34:47 +08:00
description: <a href="https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/">Granted</a> recategorize, rename, followed links, wiki, more likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you reach trust level 3. Thanks for being a regular part of our community over a period of months. Youre now one of the most active readers, and a reliable contributor that makes our community great. You can now recategorize and rename topics, take advantage of more powerful spam flags, access a private lounge area, and youll also get lots more likes per day.
leader:
name: Leader
2018-06-26 08:34:47 +08:00
description: <a href="https://blog.discourse.org/2018/06/understanding-discourse-trust-levels/">Granted</a> global edit, pin, close, archive, split and merge, more likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you reach trust level 4. Youre a leader in this community as selected by staff, and you set a positive example for the rest of the community in your actions and words here. You have the ability to edit all posts, take common topic moderator actions such as pin, close, unlist, archive, split, and merge.
welcome:
name: Welcome
description: Received a like
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you receive your first like on a post. Congratulations, youve posted something that your fellow community members found interesting, cool, or useful!
autobiographer:
name: Autobiographer
description: Filled out <a href="%{base_uri}/my/preferences/profile">profile</a> information
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted for filling out <a href="%{base_uri}/my/preferences/profile">your user profile</a> and selecting a profile picture. Letting the community know a bit more about who you are and what youre interested in makes for a better, more connected community. Join us!
anniversary:
name: Anniversary
description: Active member for a year, posted at least once
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when youve been a member for a year with at least one post in that year. Thank you for sticking around and contributing to our community. We couldnt do it without you.
nice_post:
name: Nice Reply
description: Received 10 likes on a reply
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your reply gets 10 likes. Your reply made an impression on the community and helped move the conversation forward.
good_post:
name: Good Reply
description: Received 25 likes on a reply
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your reply gets 25 likes. Your reply was exceptional and made the conversation much more interesting.
great_post:
name: Great Reply
description: Received 50 likes on a reply
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your reply gets 50 likes. Wow! Your reply was inspiring, fascinating, hilarious, or insightful and the community loved it!
nice_topic:
name: Nice Topic
description: Received 10 likes on a topic
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your topic gets 10 likes. You started an interesting conversation that the community enjoyed.
good_topic:
name: Good Topic
description: Received 25 likes on a topic
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your topic gets 25 likes. You launched a vibrant conversation that the community rallied around.
great_topic:
name: Great Topic
description: Received 50 likes on a topic
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when your topic gets 50 likes. You kicked off a fascinating conversation and the community loved the lively discussion that resulted!
nice_share:
name: Nice Share
description: Shared a post with 25 unique visitors
long_description: |
This badge is granted for sharing a link that was clicked by 25 outside visitors. Thanks for spreading the word about our discussions, and this community.
good_share:
name: Good Share
description: Shared a post with 300 unique visitors
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted for sharing a link that was clicked by 300 outside visitors. Good work! Youve shown off a great discussion to a bunch of new people and helped this community grow.
great_share:
name: Great Share
description: Shared a post with 1000 unique visitors
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted for sharing a link that was clicked by 1000 outside visitors. Wow! Youve promoted an interesting discussion to a huge new audience, and helped us grow our community in a big way!
first_like:
name: First Like
description: Liked a post
long_description: |
This badge is granted the first time you like a post using the :heart: button. Liking posts is a great way to let your fellow community members know that what they posted was interesting, useful, cool, or fun. Share the love!
first_flag:
name: First Flag
description: Flagged a post
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted the first time you flag a post. Flagging is how we all help keep this a nice place for everyone. If you notice any posts that require moderator attention for any reason please dont hesitate to flag. If you see a problem, :flag_black: flag it!
promoter:
name: Promoter
description: Invited a user
long_description: |
This badge is granted when you invite someone to join the community via the invite button on your user page, or at the bottom of a topic. Inviting friends who might be interested in specific discussions is a great way to introduce new people to our community, so thanks!
campaigner:
name: Campaigner
description: Invited 3 basic users
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when youve invited 3 people who subsequently spent enough time on the site to become basic users. A vibrant community needs a regular infusion of newcomers who regularly participate and add new voices to the conversations.
champion:
name: Champion
description: Invited 5 members
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when youve invited 5 people who subsequently spent enough time on the site to become full members. Wow! Thanks for expanding the diversity of our community with new members!
first_share:
name: First Share
description: Shared a post
long_description: |
This badge is granted the first time you share a link to a reply or topic using the share button. Sharing links is a great way to show off interesting discussions with the rest of the world and grow your community.
first_link:
name: First Link
description: Added a link to another topic
long_description: |
This badge is granted the first time you add a link to another topic. Linking topics helps fellow readers find interesting related conversations, by showing the connections between topics in both directions. Link freely!
first_quote:
name: First Quote
description: Quoted a post
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted the first time you quote a post in your reply. Quoting relevant parts of earlier posts in your reply helps keep discussions connected together and on topic. The easiest way to quote is to highlight a section of a post, and then press any reply button. Quote generously!
read_guidelines:
name: Read Guidelines
description: Read the <a href="%{base_uri}/guidelines">community guidelines</a>
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted for <a href="%{base_uri}/guidelines">reading the community guidelines</a>. Following and sharing these simple guidelines helps build a safe, fun, and sustainable community for everyone. Always remember theres another human being, one very much like yourself, on the other side of that screen. Be nice!
reader:
name: Reader
description: Read every reply in a topic with more than 100 replies
long_description: |
This badge is granted the first time you read a long topic with more than 100 replies. Reading a conversation closely helps you follow the discussion, understand different viewpoints, and leads to more interesting conversations. The more you read, the better the conversation gets. As we like to say, Reading is Fundamental! :slight_smile:
popular_link:
name: Popular Link
description: Posted an external link with 50 clicks
long_description: |
This badge is granted when a link you shared gets 50 clicks. Thanks for posting a useful link that added interesting context to the conversation!
hot_link:
name: Hot Link
description: Posted an external link with 300 clicks
long_description: |
This badge is granted when a link you shared gets 300 clicks. Thanks for posting a fascinating link that drove the conversation forward and illuminated the discussion!
famous_link:
name: Famous Link
description: Posted an external link with 1000 clicks
long_description: |
This badge is granted when a link you shared gets 1000 clicks. Wow! You posted a link that significantly improved the conversation by adding essential detail, context, and information. Great work!
appreciated:
name: Appreciated
description: Received 1 like on 20 posts
long_description: |
2016-03-25 06:06:31 +08:00
This badge is granted when you receive at least one like on 20 different posts. The community is enjoying your contributions to the conversations here!
respected:
name: Respected
description: Received 2 likes on 100 posts
long_description: |
2016-03-25 06:06:31 +08:00
This badge is granted when you receive at least 2 likes on 100 different posts. The community is growing to respect your many contributions to the conversations here.
admired:
name: Admired
description: Received 5 likes on 300 posts
long_description: |
2016-03-25 06:06:31 +08:00
This badge is granted when you receive at least 5 likes on 300 different posts. Wow! The community admires your frequent, high quality contributions to the conversations here.
out_of_love:
name: Out of Love
description: Used %{max_likes_per_day} likes in a day
long_description: |
This badge is granted when you use all %{max_likes_per_day} of your daily likes. Remembering to take a moment and like the posts you enjoy and appreciate encourages your fellow community members to create even more great discussions in the future.
higher_love:
name: Higher Love
description: Used %{max_likes_per_day} likes in a day 5 times
long_description: |
This badge is granted when you use all %{max_likes_per_day} of your daily likes for 5 days. Thanks for taking the time actively encouraging the best conversations every day!
crazy_in_love:
name: Crazy in Love
description: Used %{max_likes_per_day} likes in a day 20 times
long_description: |
This badge is granted when you use all %{max_likes_per_day} of your daily likes for 20 days. Wow! Youre a role model for encouraging your fellow community members!
thank_you:
name: Thank You
description: Has 20 liked posts and gave 10 likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you have 20 liked posts and give 10 or more likes in return. When someone likes your posts, you find the time to like what others are posting, too.
gives_back:
name: Gives Back
description: Has 100 liked posts and gave 100 likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you have 100 liked posts and give 100 or more likes in return. Thanks for paying it forward!
empathetic:
name: Empathetic
description: Has 500 liked posts and gave 1000 likes
long_description: |
2018-07-13 06:50:34 +08:00
This badge is granted when you have 500 liked posts and give 1000 or more likes in return. Wow! Youre a model of generosity and mutual appreciation :two_hearts:.
2016-04-09 08:07:11 +08:00
first_emoji:
name: First Emoji
description: Used an Emoji in a Post
long_description: |
This badge is granted the first time you add an Emoji to your post :thumbsup:. Emoji let you convey emotion in your posts, from happiness :smiley: to sadness :anguished: to anger :angry: and everything in between :sunglasses:. Just type a : (colon) or press the Emoji toolbar button in the editor to select from hundreds of choices :ok_hand:
2016-04-09 08:07:11 +08:00
first_mention:
name: First Mention
2017-04-01 07:28:29 +08:00
description: Mentioned a user in a post
2018-07-13 06:50:34 +08:00
long_description: |
This badge is granted the first time you mention someones @username in your post. Each mention generates a notification to that person, so they know about your post. Just begin typing @ (at symbol) to mention any user or, if allowed, group its a convenient way to bring something to their attention.
2016-04-13 02:09:59 +08:00
first_onebox:
name: First Onebox
description: Posted a link that was oneboxed
2018-07-13 06:50:34 +08:00
long_description: |
This badge is granted the first time you post a link on a line by itself, which automatically expanded into a onebox with a summary, title, and (when available) picture.
first_reply_by_email:
name: First Reply By Email
2017-04-01 07:28:29 +08:00
description: Replied to a post via email
long_description: |
This badge is granted the first time you reply to a post via email :e-mail:.
new_user_of_the_month:
name: "New User of the Month"
2017-04-01 07:28:29 +08:00
description: Outstanding contributions in their first month
long_description: |
2017-04-01 07:28:29 +08:00
This badge is granted to congratulate two new users each month for their excellent overall contributions, as measured by how often their posts were liked, and by whom.
enthusiast:
name: Enthusiast
description: Visited 10 consecutive days
2018-07-13 06:50:34 +08:00
long_description: |
This badge is granted for visiting 10 consecutive days. Thanks for sticking with us for over a week!
aficionado:
name: Aficionado
description: Visited 100 consecutive days
2018-07-13 06:50:34 +08:00
long_description: |
This badge is granted for visiting 100 consecutive days. Thats more than three months!
devotee:
name: Devotee
description: Visited 365 consecutive days
2018-07-13 06:50:34 +08:00
long_description: |
This badge is granted for visiting 365 consecutive days. Wow, an entire year!
2017-04-06 12:26:13 +08:00
badge_title_metadata: "%{display_name} badge on %{site_title}"
admin_login:
success: "Email Sent"
2018-01-22 19:20:53 +08:00
errors:
unknown_email_address: "Unknown email address."
invalid_token: "Invalid token."
email_input: "Admin Email"
submit_button: "Send Email"
2015-05-26 21:16:55 +08:00
2015-06-26 11:33:09 +08:00
performance_report:
initial_post_raw: This topic includes daily performance reports for your site.
initial_topic_title: Website performance reports
2016-03-02 03:07:04 +08:00
tags:
2016-05-04 03:51:50 +08:00
title: "Tags"
restricted_tag_disallowed: 'You cannot apply the tag "%{tag}".'
restricted_tag_remove_disallowed: 'You cannot remove the tag "%{tag}".'
minimum_required_tags:
one: "You must select at least %{count} tag."
other: "You must select at least %{count} tags."
2018-10-15 16:12:54 +08:00
upload_row_too_long: "The CSV file should have one tag per line. Optionally the tag can be followed by a comma, then the tag group name."
forbidden:
invalid:
one: "The tag you selected cannot be used"
other: "None of the tags you selected can be used"
in_this_category: '"%{tag_name}" cannot be used in this category'
restricted_to:
one: '"%{tag_name}" is restricted to the "%{category_names}" category'
other: '"%{tag_name}" is restricted to the following categories: %{category_names}'
synonym: 'Synonyms are not allowed. Use "%{tag_name}" instead.'
has_synonyms: '"%{tag_name}" cannot be used because it has synonyms.'
required_tags_from_group:
one: "You must include at least %{count} %{tag_group_name} tag. The tags in this group are: %{tags}."
other: "You must include at least %{count} %{tag_group_name} tags. The tags in this group are: %{tags}."
invalid_target_tag: "cannot be a synonym of a synonym"
synonyms_exist: "is not allowed while synonyms exist"
rss_by_tag: "Topics tagged %{tag}"
2016-08-26 01:14:56 +08:00
finish_installation:
congratulations: "Congratulations, you installed Discourse!"
register:
button: "Register"
title: "Register Admin Account"
help: "register a new account to get started"
no_emails: "Unfortunately, no administrator emails were defined during setup, so finalizing the configuration may be difficult. Please add a developer email in the configuration file or <a href='https://meta.discourse.org/t/create-admin-account-from-console/17274'>create an administrator account from console</a>."
confirm_email:
title: "Confirm your Email"
2019-04-23 11:45:29 +08:00
message: "<p>We sent an activation mail to <b>%{email}</b>. Please follow the instructions in the email to activate your account.</p><p>If it doesn't arrive, check your spam folder, and <a href='https://meta.discourse.org/t/troubleshooting-email-on-a-new-discourse-install/16326'>ensure you set up email correctly</a>.</p>"
resend_email:
title: "Resend Activation Email"
message: "<p>We've re-sent the activation email to <b>%{email}</b>"
safe_mode:
title: "Enter safe mode"
description: "Safe mode allows you to test your site without loading plugins or site customizations."
no_customizations: "Disable current theme"
only_official: "Disable unofficial plugins"
no_plugins: "Disable all plugins"
enter: "Enter Safe Mode"
must_select: "You must select at least one option to enter safe mode."
2016-08-26 01:14:56 +08:00
wizard:
2016-09-16 07:37:24 +08:00
title: "Discourse Setup"
2016-08-26 01:14:56 +08:00
step:
2016-09-08 06:04:01 +08:00
locale:
2016-09-16 07:37:24 +08:00
title: "Welcome to your Discourse!"
2016-09-08 06:04:01 +08:00
fields:
default_locale:
2016-09-16 07:37:24 +08:00
description: "Whats the default language for your community?"
2016-09-08 06:04:01 +08:00
forum_title:
2016-09-16 07:37:24 +08:00
title: "Name"
2016-09-22 14:52:28 +08:00
description: "Your name is a sign visible in the distance, the <i>first</i> thing potential visitors will notice about your community. What does your name and title say about your community?"
2016-09-08 06:04:01 +08:00
2016-08-26 01:14:56 +08:00
fields:
title:
2016-09-22 14:52:28 +08:00
label: "Your communitys name"
2016-09-16 07:37:24 +08:00
placeholder: "Janes Hangout"
2016-08-26 01:14:56 +08:00
site_description:
label: "Describe your community in one short sentence (used in search results and social media)"
2016-08-26 01:14:56 +08:00
placeholder: "A place for Jane and her friends to discuss cool stuff"
short_site_description:
label: "Describe your community in few words (used for the homepage title)"
placeholder: "Best community ever"
2016-09-10 03:57:44 +08:00
2016-09-21 05:01:54 +08:00
introduction:
title: "Introduction"
disabled:
"<p>We couldnt find any topic with the title “%{topic_title}”.</p>
2018-11-21 05:43:18 +08:00
<ul>
<li>If you have changed the title, edit that topic to modify your sites introductory text.</li>
<li>If you have deleted this topic, create another topic with “%{topic_title}” as the title. The content of the first post is your sites introductory text.</li>
2018-11-21 05:43:18 +08:00
</ul>"
2016-09-21 05:01:54 +08:00
fields:
welcome:
label: "Welcome Topic"
description:
"<p>How would you describe your community to a stranger on an elevator in about 1 minute?</p>
2016-09-21 06:24:26 +08:00
<ul>
2016-09-21 05:50:57 +08:00
<li>Who are these discussions for?</li>
<li>What can I find here?</li>
<li>Why should I visit?</li>
2016-09-21 06:24:26 +08:00
</ul>
<p>Your welcome topic is the first thing new arrivals will read. Think of it as your <b>one paragraph</b> 'elevator pitch' or 'mission statement'. </p>"
2016-09-21 05:01:54 +08:00
one_paragraph: "Please restrict your welcome message to one paragraph."
extra_description: "If you are not sure, you can skip this step and edit your welcome topic later."
2016-09-21 05:01:54 +08:00
2016-09-10 03:57:44 +08:00
privacy:
2016-09-16 07:37:24 +08:00
title: "Access"
description: "<p>Is your community open to everyone, or is it restricted by membership, invitation, or approval? If you prefer, you can set things up privately, then switch over to public later.</p>"
2016-09-10 03:57:44 +08:00
fields:
privacy:
choices:
open:
2016-09-16 07:37:24 +08:00
label: "Public"
description: "Anyone can access this community"
2016-09-10 03:57:44 +08:00
restricted:
2016-09-16 07:37:24 +08:00
label: "Private"
description: "Only logged in users can access this community"
privacy_options:
description: "How do new users sign up for an account?"
choices:
open:
label: "Users can sign up on their own."
invite_only:
label: "Users must be invited by trusted users or staff before they can sign up."
must_approve:
label: "Users can sign up on their own, but must be approved by staff."
2016-09-10 03:57:44 +08:00
2016-08-26 01:14:56 +08:00
contact:
2016-09-16 07:37:24 +08:00
title: "Contact"
2016-08-26 01:14:56 +08:00
fields:
contact_email:
2016-09-20 17:30:32 +08:00
label: "Mail"
2016-08-26 01:14:56 +08:00
placeholder: "name@example.com"
description: "Email address for the person or group responsible for this community. Used for critical notifications such as unhandled flags, security updates, and on <a href='%{base_path}/about' target='_blank'>your about page</a> for urgent community contact."
contact_url:
2016-09-16 07:37:24 +08:00
label: "Web Page"
2018-10-10 19:11:58 +08:00
placeholder: "https://www.example.com/contact-us"
description: "General contact web page for you or your organization. Will be displayed on <a href='%{base_path}/about' target='_blank'>your about page</a>."
site_contact:
2016-09-20 17:30:32 +08:00
label: "Automated Messages"
description: "All automated Discourse personal messages will be sent from this user, such as flag warnings and backup completion notices."
corporate:
2016-09-20 17:30:32 +08:00
title: "Organization"
description: "This information will be entered in your <a href='%{base_path}/tos' target='blank'>Terms of Service</a>, which is a topic you can edit in the Staff category. If you dont have a company, feel free to skip this step for now."
fields:
company_name:
label: "Company Name"
placeholder: "Example Organization"
governing_law:
label: "Governing Law"
placeholder: "California law"
city_for_disputes:
label: "City for Disputes"
placeholder: "San Francisco, California"
styling:
title: "Styling"
fields:
color_scheme:
label: "Color scheme"
body_font:
label: "Body font"
heading_font:
label: "Heading font"
styling_preview:
label: "Preview"
homepage_style:
label: "Homepage style"
choices:
latest:
label: "Latest Topics"
categories_only:
label: "Categories Only"
categories_with_featured_topics:
label: "Categories with Featured Topics"
categories_and_latest_topics:
label: "Categories and Latest Topics"
categories_and_top_topics:
label: "Categories and Top Topics"
categories_boxes:
label: "Categories boxes"
categories_boxes_with_topics:
label: "Categories boxes with Topics"
2016-09-09 04:58:07 +08:00
logos:
2016-09-16 07:37:24 +08:00
title: "Logos"
2016-09-09 04:58:07 +08:00
fields:
2018-11-14 15:03:02 +08:00
logo:
2016-09-16 07:37:24 +08:00
label: "Primary Logo"
description: "The logo image at the top left of your site. Use a wide rectangular image with a height of 120 and an aspect ratio greater than 3:1"
2018-11-14 15:03:02 +08:00
logo_small:
FEATURE: Automatically generate optimized site metadata icons (#7372) This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required. ## Core - Adds an SiteIconManager module which manages automatic resizing and fallback - Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). - `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system. - Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations ## Wizard - Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload - Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo" - Various copy updates to support the changes - Remove the "upload-time" resizing for `large_icon`. This is no longer required. ## Site Settings UX - Move logo/icon settings under a new "Branding" tab - Various copy changes to support the changes - Adds placeholder support to the `image-uploader` component - Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings - Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name ## Dashboard Warnings - Remove PWA icon and PWA title warnings. Both are now handled automatically. ## Bonus - Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 21:44:45 +08:00
label: "Square Logo"
description: "A square version of your logo. Shown at the top left of your site when scrolling down, in the browser, and when sharing on social platforms. Ideally larger than 512x512."
icons:
title: "Icons"
fields:
2018-11-14 15:03:02 +08:00
favicon:
FEATURE: Automatically generate optimized site metadata icons (#7372) This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required. ## Core - Adds an SiteIconManager module which manages automatic resizing and fallback - Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). - `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system. - Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations ## Wizard - Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload - Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo" - Various copy updates to support the changes - Remove the "upload-time" resizing for `large_icon`. This is no longer required. ## Site Settings UX - Move logo/icon settings under a new "Branding" tab - Various copy changes to support the changes - Adds placeholder support to the `image-uploader` component - Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings - Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name ## Dashboard Warnings - Remove PWA icon and PWA title warnings. Both are now handled automatically. ## Bonus - Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 21:44:45 +08:00
label: "Browser Icon"
description: "Icon image used to represent your site in web browsers that looks good at small sizes. Recommended image extensions are PNG or JPG. We'll use the square logo by default."
large_icon:
2016-09-09 04:58:07 +08:00
label: "Large Icon"
FEATURE: Automatically generate optimized site metadata icons (#7372) This change automatically resizes icons for various purposes. Admins can now upload `logo` and `logo_small`, and everything else will be auto-generated. Specific icons can still be uploaded separately if required. ## Core - Adds an SiteIconManager module which manages automatic resizing and fallback - Icons are looked up in the OptimizedImage table at runtime, and then cached in Redis. If the resized version is missing for some reason, then most icons will fall back to the original files. Some icons (e.g. PWA Manifest) will return `nil` (because an incorrectly sized icon is worse than a missing icon). - `SiteSetting.site_large_icon_url` will return the optimized version, including any fallback. `SiteSetting.large_icon` continues to return the upload object. This means that (almost) no changes are required in core/plugins to support this new system. - Icons are resized whenever a relevant site setting is changed, and during post-deploy migrations ## Wizard - Allows `requiresRefresh` wizard steps to reload data via AJAX instead of a full page reload - Add placeholders to the **icons** step of the wizard, which automatically update from the "Square Logo" - Various copy updates to support the changes - Remove the "upload-time" resizing for `large_icon`. This is no longer required. ## Site Settings UX - Move logo/icon settings under a new "Branding" tab - Various copy changes to support the changes - Adds placeholder support to the `image-uploader` component - Automatically reloads site settings after saving. This allows setting placeholders to change based on changes to other settings - Upload site settings will be assigned a placeholder if SiteIconManager `responds_to?` an icon of the same name ## Dashboard Warnings - Remove PWA icon and PWA title warnings. Both are now handled automatically. ## Bonus - Updated the sketch logos to use @awesomerobot's new high-res designs
2019-05-01 21:44:45 +08:00
description: "Icon image used to represent your site on modern devices that looks good at larger sizes. Ideally larger than 512 × 512. We'll use the square logo by default."
2016-09-14 03:14:17 +08:00
invites:
title: "Invite Staff"
description: "Youre almost done! Lets invite some people to help <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/' target='blank'>seed your discussions</a> with interesting topics and replies to get your community started."
disabled: "Since local logins are disabled, its not possible to send invites to anyone. Please proceed to the next step."
2016-09-14 03:14:17 +08:00
finished:
2016-09-16 07:37:24 +08:00
title: "Your Discourse is Ready!"
description: |
<p>If you ever feel like changing these settings, <b>re-run this wizard any time</b>, or visit <a href='%{base_path}/admin' target='_blank'>your admin section</a>; find it next to the wrench icon in the site menu.</p>
<p>It is easy to customize your Discourse even further using our powerful theming system. For examples, check out the <a href="https://meta.discourse.org/c/theme/61/l/top" target="_blank">top themes and components</a> on <a href="https://meta.discourse.org/" target="_blank">meta.discourse.org</a>.</p>
2016-09-22 14:52:28 +08:00
<p>Have fun, and good luck <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/' target='_blank'>building your new community!</a></p>
search_logs:
graph_title: "Search Count"
joined: "Joined"
discourse_push_notifications:
popup:
mentioned: '%{username} mentioned you in "%{topic}" - %{site_title}'
group_mentioned: '%{username} mentioned you in "%{topic}" - %{site_title}'
quoted: '%{username} quoted you in "%{topic}" - %{site_title}'
replied: '%{username} replied to you in "%{topic}" - %{site_title}'
posted: '%{username} posted in "%{topic}" - %{site_title}'
private_message: '%{username} sent you a private message in "%{topic}" - %{site_title}'
linked: '%{username} linked to your post from "%{topic}" - %{site_title}'
watching_first_post: '%{username} created a new topic "%{topic}" - %{site_title}'
confirm_title: "Notifications enabled - %{site_title}"
confirm_body: "Success! Notifications have been enabled."
custom: "Notification from %{username} on %{site_title}"
staff_action_logs:
not_found: "not found"
unknown: "unknown"
2018-06-08 22:48:26 +08:00
user_merged: "%{username} was merged into this account"
user_delete_self: "Deleted by self from %{url}"
webhook_deactivation_reason: "Your webhook has been automatically deactivated. We received multiple '%{status}' HTTP status failure responses."
api_key:
automatic_revoked:
one: "Automatically revoked, last activity more than %{count} day ago"
other: "Automatically revoked, last activity more than %{count} days ago"
revoked: Revoked
restored: Restored
reviewables:
already_handled: "Thanks, but we've already reviewed that post and determined it does not need to be flagged again."
already_handled_and_user_not_exist: "Thanks, but someone already reviewed and that user no longer exists."
priorities:
low: "Low"
medium: "Medium"
high: "High"
sensitivity:
disabled: "Disabled"
2019-05-27 21:06:46 +08:00
low: "Low"
medium: "Medium"
high: "High"
must_claim: "You must claim items before acting on them."
user_claimed: "This item has been claimed by another user."
missing_version: "You must supply a version parameter"
conflict: "There was an update conflict preventing you from doing that."
reasons:
post_count: "The first few posts from every user must be approved by staff. See %{link}."
trust_level: "Users at low trust levels must have replies approved by staff. See %{link}."
new_topics_unless_trust_level: "Users at low trust levels must have topics approved by staff. See %{link}."
fast_typer: "New user typed their first post suspiciously fast, suspected bot or spammer behavior. See %{link}."
auto_silence_regex: "New user whose first post matches the %{link} setting."
watched_word: "This post included a Watched Word. See your %{link}."
staged: "New topics and posts for staged users must be approved by staff. See %{link}."
category: "Posts in this category require manual approval by staff. See the %{link}."
must_approve_users: "All new users must be approved by staff. See %{link}."
invite_only: "All new users should be invited. See %{link}."
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 %{link}."
suspect_user: "This new user entered profile information without reading any topics or posts, which strongly suggests they may be a spammer. See %{link}."
contains_media: "This post includes embedded media. See %{link}."
queued_by_staff: "A staff member thinks this post needs review. It'll remain hidden until then."
links:
watched_word: list of watched words
category: category settings
actions:
agree:
title: "Agree..."
agree_and_keep:
title: "Keep Post"
description: "Agree with flag and keep the post unchanged."
agree_and_keep_hidden:
title: "Keep Post Hidden"
description: "Agree with flag and leave the post hidden."
agree_and_suspend:
title: "Suspend User"
description: "Agree with flag and suspend the user."
agree_and_silence:
title: "Silence User"
description: "Agree with flag and silence the user."
agree_and_restore:
title: "Restore Post"
description: "Restore the post so that all users can see it."
agree_and_hide:
title: "Hide Post"
description: "Hide this post and automatically send the user a message urging them to edit it."
delete_single:
title: "Delete"
delete:
title: "Delete..."
delete_and_ignore:
title: "Delete Post and Ignore"
description: "Delete post; if the first post, delete the topic as well"
delete_and_ignore_replies:
title: "Delete Post + Replies and Ignore"
description: "Delete post and all of its replies; if the first post, delete the topic as well"
confirm: "Are you sure you want to delete the replies to the post as well?"
delete_and_agree:
title: "Delete Post and Agree"
description: "Delete post; if the first post, delete the topic as well"
delete_and_agree_replies:
title: "Delete Post + Replies and Agree"
description: "Delete post and all of its replies; if the first post, delete the topic as well"
confirm: "Are you sure you want to delete the replies to the post as well?"
disagree_and_restore:
title: "Disagree and Restore Post"
description: "Restore the post so that all users can see it."
disagree:
title: "Disagree"
ignore:
title: "Ignore"
approve:
title: "Approve"
approve_post:
title: "Approve Post"
confirm_closed: "This topic is closed. Would you like to create the post anyway?"
reject_post:
title: "Reject Post"
approve_user:
title: "Approve User"
reject_user:
title: "Delete User..."
delete:
title: "Delete User"
description: "The user will be deleted from the forum."
block:
title: "Delete and Block User"
description: "The user will be deleted, and we'll block their IP and email address."
reject:
title: "Reject"
bundle_title: "Reject..."
reject_and_suspend:
title: "Reject and Suspend user"
reject_and_silence:
title: "Reject and Silence user"
reject_and_delete:
title: "Reject and Delete the post"
reject_and_keep_deleted:
title: "Keep post deleted"
approve_and_restore:
title: "Approve and Restore post"
delete_user:
reason: "Deleted via review queue"
email_style:
html_missing_placeholder: "The html template must include %{placeholder}"
notification_level:
ignore_error: "Sorry, you can't ignore that user."
mute_error: "Sorry, you can't mute that user."
error: "Sorry, you cannot change the notification level for that user."
discord:
2019-10-31 00:56:25 +08:00
not_in_allowed_guild: "Authentication failed. You are not a member of a permitted Discord guild."
old_keys_reminder:
title: "Reminder about old credentials"
body: |
Hello! This is a routine yearly security reminder from your Discourse instance.
As a courtesy, we wanted to let you know that the following credentials used on your Discourse instance have not been updated in more than two years:
%{keys}
No action is required at this time, however, it is considered good security practice to cycle all your important credentials every few years.
create_linked_topic:
topic_title_with_sequence:
one: "%{topic_title} (Part %{count})"
other: "%{topic_title} (Part %{count})"
post_raw: "Continuing the discussion from %{parent_url}.\n\nPrevious discussions:\n\n%{previous_topics}"
small_action_post_raw: "Continue discussion at %{new_title}."
fallback_username: "user"