discourse/plugins/chat/config/locales/server.en.yml

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

273 lines
16 KiB
YAML
Raw Normal View History

en:
site_settings:
chat_separate_sidebar_mode: "Show separate sidebar modes for forum and chat."
chat_enabled: "Enable chat."
enable_public_channels: "Enable public channels based on categories."
chat_allowed_groups: "Users in these groups can chat. Note that admins and moderators can always access chat."
chat_channel_retention_days: "Chat messages in regular channels will be retained for this many days. Set to '0' to retain messages forever."
chat_dm_retention_days: "Chat messages in personal chat channels will be retained for this many days. Set to '0' to retain messages forever."
chat_auto_silence_duration: "Number of minutes that users will be silenced for when they exceed the chat message creation rate limit. Set to '0' to disable auto-silencing."
chat_allowed_messages_for_trust_level_0: "Number of messages that trust level 0 users is allowed to send in 30 seconds. Set to '0' to disable limit."
chat_allowed_messages_for_other_trust_levels: "Number of messages that users with trust levels 1-4 is allowed to send in 30 seconds. Set to '0' to disable limit."
chat_silence_user_sensitivity: "The likelihood that a user flagged in chat will be automatically silenced."
chat_auto_silence_from_flags_duration: "Number of minutes that users will be silenced for when they are automatically silenced due to flagged chat messages."
chat_default_channel_id: "The chat channel that will be opened by default when a user has no unread messages or mentions in other channels."
chat_duplicate_message_sensitivity: "The likelihood that a duplicate message by the same sender will be blocked in a short period. Decimal number between 0 and 1.0, with 1.0 being the highest setting (blocks messages more frequently in a shorter amount of time). Set to `0` to allow duplicate messages."
chat_minimum_message_length: "Minimum number of characters for a chat message."
chat_allow_uploads: "Allow uploads in public chat channels and direct message channels."
chat_archive_destination_topic_status: "The status that the destination topic should be once a channel archive is completed. This only applies when the destination topic is a new topic, not an existing one."
default_emoji_reactions: "Default emoji reactions for chat messages. Add up to 5 emojis for quick reaction."
direct_message_enabled_groups: "Allow users within these groups to create user-to-user Personal Chats. Note: staff can always create Personal Chats, and users will be able to reply to Personal Chats initiated by users who have permission to create them."
chat_message_flag_allowed_groups: "Users in these groups are allowed to flag chat messages. Note that admins and moderators can always flag chat messages."
max_mentions_per_chat_message: "Maximum number of @name notifications a user can use in a chat message."
chat_max_direct_message_users: "Users cannot add more than this number of other users when creating a new direct message. Set to 0 to only allow messages to oneself. Staff are exempt from this setting."
chat_allow_archiving_channels: "Allow staff to archive messages to a topic when closing a channel."
chat_editing_grace_period: "For (n) seconds after sending a chat, editing will not display the (edited) tag by the chat message."
chat_editing_grace_period_max_diff_low_trust: "Maximum number of character changes allowed in chat editing grace period, if more changed display the (edited) tag by the chat message (trust level 0 and 1)."
chat_editing_grace_period_max_diff_high_trust: "Maximum number of character changes allowed in chat editing grace period, if more changed display the (edited) tag by the chat message (trust level 2 and up)."
chat_preferred_mobile_index: "Preferred tab when loading /chat on mobile."
errors:
chat_default_channel: "The default chat channel must be a public channel."
direct_message_enabled_groups_invalid: "You must specify at least one group for this setting. If you do not want anyone except staff to send direct messages, choose the staff group."
chat_upload_not_allowed_secure_uploads: "Chat uploads are not allowed when secure uploads site setting is enabled."
system_messages:
private_channel_title: "Channel %{id}"
chat_channel_archive_complete:
title: "Chat Channel Archive Complete"
subject_template: "Chat channel archive completed successfully"
text_body_template: |
Archiving the chat channel %{channel_hashtag_or_name} has been completed successfully. The messages were copied into the topic [%{topic_title}](%{topic_url}).
chat_channel_archive_failed:
title: "Chat Channel Archive Failed"
subject_template: "Chat channel archive failed"
text_body_template: |
Archiving the chat channel %{channel_hashtag_or_name} has failed. %{messages_archived} messages have been archived. Partially archived messages were copied into the topic [%{topic_title}](%{topic_url}). Visit the channel at %{channel_url} to retry.
chat_channel_archive_failed_no_topic:
title: "Chat Channel Archive Failed"
subject_template: "Chat channel archive failed"
text_body_template: |
Archiving the chat channel %{channel_hashtag_or_name} has failed. No messages have been archived. The topic was not created successfully for the following reasons:
%{topic_validation_errors}
Visit the channel at %{channel_url} to retry.
chat:
deleted_chat_username: deleted
errors:
users_cant_be_added_to_channel: "Users can't be added to this channel."
channel_exists_for_category: "A channel already exists for this category and name"
channel_new_message_disallowed:
archived: "The channel is archived, no new messages can be sent"
closed: "The channel is closed, no new messages can be sent"
read_only: "The channel is read only, no new messages can be sent"
channel_modify_message_disallowed:
archived: "The channel is archived, no messages can be edited or deleted"
closed: "The channel is closed, no messages can be edited or deleted"
read_only: "The channel is read only, no messages can be edited or deleted"
user_cannot_send_message: "You cannot send messages at this time."
rate_limit_exceeded: "Exceeded the limit of chat messages that can be sent within 30 seconds"
auto_silence_from_flags: "Chat message flagged with score high enough to silence user."
channel_cannot_be_archived: "The channel cannot be archived at this time, it must be either closed or open to archive."
duplicate_message: "You posted an identical message too recently."
delete_channel_failed: "Delete channel failed, please try again."
minimum_length_not_met:
one: "Message is too short, must have a minimum of %{count} character."
other: "Message is too short, must have a minimum of %{count} characters."
message_too_long:
one: "Message is too long, messages must be a maximum of %{count} character."
other: "Message is too long, messages must be a maximum of %{count} characters."
draft_too_long: "Draft is too long."
max_reactions_limit_reached: "New reactions are not allowed on this message."
message_move_invalid_channel: "The source and destination channel must be public channels."
message_move_no_messages_found: "No messages were found with the provided message IDs."
cant_update_direct_message_channel: "Direct message channel properties like name and description cant be updated."
not_accepting_dms: "Sorry, %{username} is not accepting messages at the moment."
actor_ignoring_target_user: "You are ignoring %{username}, so you cannot send messages to them."
actor_muting_target_user: "You are muting %{username}, so you cannot send messages to them."
actor_disallowed_dms: "You have chosen to prevent users from sending you private and direct messages, so you cannot create new direct messages."
actor_preventing_target_user_from_dm: "You have chosen to prevent %{username} from sending you private and direct messages, so you cannot create new direct messages to them."
user_cannot_send_direct_messages: "Sorry, you cannot send direct messages."
over_chat_max_direct_message_users_allow_self: "You can only create a direct message with yourself."
over_chat_max_direct_message_users:
one: "You can't create a direct message with more than %{count} other user."
other: "You can't create a direct message with more than %{count} other users."
original_message_not_found: "The ancestor of the message you are replying to cannot be found or has been deleted."
thread_invalid_for_channel: "Thread is not part of the provided channel."
thread_does_not_match_parent: "Thread does not match parent message."
invalid_direct_message: "You are not allowed to create this direct message."
reviewables:
message_already_handled: "Thanks, but we've already reviewed this message and determined it does not need to be flagged again."
actions:
agree:
title: "Agree..."
agree_and_keep_message:
title: "Keep Message"
description: "Agree with flag and keep the message unchanged."
agree_and_keep_deleted:
title: "Keep Message Deleted"
description: "Agree with flag and leave the message deleted."
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 Message"
description: "Restore the message so that users can see it."
agree_and_delete:
title: "Delete Message"
description: "Delete the message so that users cannot see it."
delete_and_agree:
title: "Ignore Flag and Delete Message"
description: "Ignore the flag by removing it from the queue and delete the message."
disagree_and_restore:
title: "Disagree and Restore Message"
description: "Restore the message so that all users can see it."
disagree:
title: "Disagree"
ignore:
title: "Do Nothing"
description: "Ignore the flag by removing it from the queue without taking any action."
direct_messages:
transcript_title: "Transcript of previous messages in %{channel_name}"
transcript_body: "To give you more context, we included a transcript of the previous messages in this conversation (up to ten):\n\n%{transcript}"
channel:
users_invited_to_channel:
one: "%{invited_users} has been invited by %{inviting_user}."
other: "%{invited_users} have been invited by %{inviting_user}."
archive:
first_post_raw: "This topic is an archive of the [%{channel_name}](%{channel_url}) chat channel."
messages_moved:
one: "@%{acting_username} moved a message to the [%{channel_name}](%{first_moved_message_url}) channel."
other: "@%{acting_username} moved %{count} messages to the [%{channel_name}](%{first_moved_message_url}) channel."
dm_title:
single_user: "%{username}"
multi_user: "%{comma_separated_usernames}"
multi_user_truncated:
one: "%{comma_separated_usernames} and %{count} other"
other: "%{comma_separated_usernames} and %{count} others"
mention_warning:
dismiss: "dismiss"
cannot_see: "%{first_identifier} can't access this channel and was not notified."
cannot_see_multiple:
one: "%{first_identifier} and %{count} other user cannot access this channel and were not notified."
other: "%{first_identifier} and %{count} other users cannot access this channel and were not notified."
invitations_sent:
one: "Invitation sent"
other: "Invitations sent"
invite: "Invite to channel"
without_membership: "%{first_identifier} has not joined this channel."
without_membership_multiple:
one: "%{first_identifier} and %{count} other user have not joined this channel."
other: "%{first_identifier} and %{count} other users have not joined this channel."
group_mentions_disabled: "%{first_identifier} doesn't allow mentions."
group_mentions_disabled_multiple:
one: "%{first_identifier} and %{count} other group don't allow mentions."
other: "%{first_identifier} and %{count} other groups don't allow mentions."
global_mentions_disallowed: "@here and @all mentions are disabled in this channel."
too_many_members: "%{first_identifier} has too many members. No one was notified."
too_many_members_multiple:
one: "%{first_identifier} and %{count} other group have too many members. No one was notified."
other: "%{first_identifier} and %{count} other groups have too many members. No one was notified."
category_channel:
errors:
slug_contains_non_ascii_chars: "contains non-ascii characters"
is_already_in_use: "is already in use"
bookmarkable:
notification_title: "message in %{channel_name}"
personal_chat: "personal chat"
onebox:
inline_to_message: "Message #%{message_id} by %{username} #%{chat_channel}"
inline_to_channel: "Chat #%{chat_channel}"
inline_to_topic_channel: "Chat for Topic %{topic_title}"
thread_title_connector: "in"
x_members:
one: "%{count} member"
other: "%{count} members"
and_x_others:
one: "and %{count} other"
other: "and %{count} others"
transcript:
default_thread_title: "Thread"
split_thread_range: "messages %{start} to %{end} of %{total}"
discourse_push_notifications:
popup:
chat_mention:
direct: '%{username} mentioned you in "%{channel}"'
other_type: '%{username} mentioned %{identifier} in "%{channel}"'
direct_message_chat_mention:
direct: "%{username} mentioned you in personal chat"
other_type: "%{username} mentioned %{identifier} in personal chat"
new_chat_message: '%{username} sent a message in "%{channel}"'
new_direct_chat_message: "%{username} sent a message in personal chat"
discourse_automation:
scriptables:
send_chat_message:
title: Send chat message
reviewable_score_types:
needs_review:
title: "Needs Review"
notify_user:
chat_pm_title: 'Your chat message in "%{channel_name}"'
chat_pm_body: "%{link}\n\n%{message}"
notify_moderators:
chat_pm_title: 'A chat message in "%{channel_name}" requires staff attention'
chat_pm_body: "%{link}\n\n%{message}"
reviewables:
reasons:
chat_message_queued_by_staff: "A staff member thinks this chat message needs review."
user_notifications:
chat_summary:
deleted_user: "Deleted user"
description:
one: "You have a new chat message"
other: "You have new chat messages"
from: "%{site_name}"
subject:
PERF: fix performance of chat email notifications When chat is enabled, there's a scheduled job that runs every 5 minutes to check whether we need to send a "chat summary" email to users with unread chat messages or mentions. On Discourse with a large number of users, the query used wasn't optimal and sometimes taking minutes. Which isn't good when the query is called every 5 minutes 😬 This PR reworks the query in `Chat::Mailer.send_unread_mentions_summary`. Instead of starting from the `users` table, it starts from the `user_chat_channel_memberships` table which is the main piece tying everything together. The new query is mostly similar to the previous one, with some bug fixes (like ensuring the user has `allow_private_messages` enabled for direct messages) and is also slightly simpler since it doesn't keep track of the `memberships_with_unread_messages` anymore. That part has been moved to the `user_notifications.chat_summary` email method. The `UserEmailExtension` has been deleted since that was using to N+1 update the `user_chat_channel_memberships.last_unread_mention_when_emailed_it`(quite a mouthful 😛) but that's now done directly in the `user_notifications.chat_summary` email method. The "plat de résistance" of that PR - the `user_notifications.chat_summary` method has been re-worked for improved performances 🚀 Instead of doing everything in one query, it does 4 tiny ones. - One to retrieve the list of unread mentions (@something) in "category" channels - One to retrieve the list of unread messages in "direct message" channels (aka. 1-1 and group discussions) - One to load all the chat messages for each "category" channels from the last unread mention - One to load all the chat messages for each "direct message" channels from the last unread message All the specs for both `Chat::Mailer` and `UserNotification.chat_summary` have been rewriten for easier comprehension and faster execution (mostly by not using chat services which makes the specs go 10x slower...) Internal ref - t/129848
2024-06-08 06:20:37 +08:00
private_email:
one: "[%{site_name}] New message"
other: "[%{site_name}] New messages"
chat_dm_1:
one: "[%{site_name}] New message from %{name}"
other: "[%{site_name}] New messages from %{name}"
chat_dm_2: "[%{site_name}] New messages from %{name_1} and %{name_2}"
chat_dm_3_or_more: "[%{site_name}] New messages from %{name} and %{count} others"
chat_channel_1:
one: "[%{site_name}] New message in %{channel}"
other: "[%{site_name}] New messages in %{channel}"
chat_channel_2: "[%{site_name}] New messages in %{channel_1} and %{channel_2}"
chat_channel_3_or_more: "[%{site_name}] New messages in %{channel} and %{count} others"
chat_channel_and_dm: "[%{site_name}] New messages in %{channel} and from %{name}"
unsubscribe: "This chat summary is sent from %{site_link} when you are away. Change your %{email_preferences_link}, or %{unsubscribe_link} to unsubscribe."
unsubscribe_no_link: "This chat summary is sent from %{site_link} when you are away. Change your %{email_preferences_link}."
view_messages:
one: "View message"
other: "View %{count} messages"
view_more:
one: "View %{count} more message"
other: "View %{count} more messages"
your_chat_settings: "chat email frequency preference"
unsubscribe:
chat_summary:
select_title: "Set chat summary emails frequency to:"
never: Never
when_away: Only when away
category:
cannot_delete:
has_chat_channels: "Can't delete this category because it has chat channels."