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

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

526 lines
24 KiB
YAML
Raw Normal View History

en:
js:
admin:
site_settings:
categories:
chat: Chat
logs:
staff_actions:
actions:
chat_channel_status_change: "Chat channel status changed"
chat_channel_delete: "Chat channel deleted"
api:
scopes:
descriptions:
chat:
create_message: "Create a chat message in a specified channel."
about:
chat_messages_count: "Chat Messages"
chat_channels_count: "Chat Channels"
chat_users_count: "Chat Users"
chat:
dates:
time_tiny: "h:mm"
all_loaded: "Showing all messages"
already_enabled: "Chat is already enabled on this topic. Please refresh."
disabled_for_topic: "Chat is disabled on this topic."
bot: "bot"
create: "Create"
cancel: "Cancel"
cancel_reply: "Cancel reply"
chat_channels: "Channels"
browse_all_channels: "Browse all channels"
move_to_channel:
title: "Move messages to channel"
instructions:
FEATURE: Automatically create chat threads in background (#20206) Whenever we create a chat message that is `in_reply_to` another message, we want to lazily populate the thread record for the message chain. If there is no thread yet for the root message in the reply chain, we create a new thread with the appropriate details, and use that thread ID for every message in the chain that does not yet have a thread ID. * Root message (ID 1) - no thread ID * Message (ID 2, in_reply_to 1) - no thread ID * When I as a user create a message in reply to ID 2, we create a thread and apply it to ID 1, ID 2, and the new message If there is a thread for the root message in the reply chain, we do not create one, and use the thread ID for the newly created chat message. * Root message (ID 1) - thread ID 700 * Message (ID 2, in_reply_to 1) - thread ID 700 * When I as a user create a message in reply to ID 2, we use the existing thread ID 700 for the new message We also support passing in the `thread_id` to `ChatMessageCreator`, which will be used when replying to a message that is already part of a thread, and we validate whether that `thread_id` is okay in the context of the channel and also the reply chain. This work is always done, regardless of channel `thread_enabled` settings or the `enable_experimental_chat_threaded_discussions` site setting. This commit does not include a large data migration to backfill threads for all existing reply chains, its unnecessary to do this so early in the project, we can do this later if necessary. This commit also includes thread considerations in the `MessageMover` class: * If the original message and N other messages of a thread is moved, the remaining messages in the thread have a new thread created in the old channel and are moved to it. * The reply chain is not preserved for moved messages, so new threads are not created in the destination channel. In addition to this, I added a fix to also clear the `in_reply_to_id` of messages in the old channel which are moved out of that channel for data cleanliness.
2023-02-07 19:22:07 -05:00
one: "You are moving <strong>%{count}</strong> message. Select a destination channel. A placeholder message will be created in the <strong>%{channelTitle}</strong> channel to indicate that this message has been moved. Note that reply chains will not be preserved in the new channel, and messages in the old channel will no longer show as replying to any moved messages."
other: "You are moving <strong>%{count}</strong> messages. Select a destination channel. A placeholder message will be created in the <strong>%{channelTitle}</strong> channel to indicate that these messages have been moved. Note that reply chains will not be preserved in the new channel, and messages in the old channel will no longer show as replying to any moved messages."
confirm_move: "Move Messages"
channel_settings:
title: "Channel settings"
edit: "Edit"
add: "Add"
close_channel: "Close channel"
open_channel: "Open channel"
archive_channel: "Archive channel"
delete_channel: "Delete channel"
join_channel: "Join channel"
leave_channel: "Leave channel"
join: "Join"
leave: "Leave"
save_label:
mute_channel: "Mute channel preference saved"
desktop_notification: "Desktop notification preference saved"
mobile_notification: "Mobile push notification preference saved"
channel_archive:
title: "Archive Channel"
instructions: "<p>Archiving a channel puts it into read-only mode and moves all messages from the channel into a new or existing topic. No new messages can be sent, and no existing messages can be edited or deleted.</p><p>Are you sure you want to archive the <strong>%{channelTitle}</strong> channel?</p>"
process_started: "Archiving process has started. This modal will close shortly, and you will receive a personal message when the archive process is complete."
retry: "Retry"
channel_open:
title: "Open Channel"
instructions: "Reopens the channel, all users will be able to send messages and edit their existing messages."
channel_close:
title: "Close Channel"
instructions: "Closing the channel prevents non-staff users from sending new messages or editing existing messages. Are you sure you want to close this channel?"
channel_delete:
title: "Delete Channel"
instructions: "<p>Deletes the <strong>%{name}</strong> channel and chat history. All messages and related data, such as reactions and uploads, will be permanently deleted. If you want to preserve the channel history and decomission it, you may want to archive the channel instead.</p>
<p>Are you sure you want to <strong>permanently delete</strong> the channel? To confirm, type the name of the channel in the box below.</p>"
confirm: "I understand the consequences, delete the channel"
confirm_channel_name: "Enter channel name"
process_started: "The process to delete the channel has started. This modal will close shortly, you will no longer see the deleted channel anywhere."
channels_list_popup:
browse: "Browse channels"
create: "New channel"
click_to_join: "Click here to view available channels."
close: "Close"
collapse: "Collapse Chat Drawer"
confirm_flag: "Are you sure you want to flag %{username}'s message?"
deleted: "A message was deleted. [view]"
hidden: "A message was hidden. [view]"
delete: "Delete"
edited: "edited"
muted: "muted"
joined: "joined"
empty_state:
direct_message_cta: "Start a personal Chat"
direct_message: "You can also start a personal chat with one or more users."
title: "No channels found"
email_frequency:
description: "We'll only email you if we haven't seen you in the last 15 minutes."
never: "Never"
title: "Email Notifications"
when_away: "Only when away"
enable: "Enable chat"
flag: "Flag"
emoji: "Insert emoji"
flagged: "This message has been flagged for review"
invalid_access: "You don't have access to view this chat channel"
invitation_notification: "<span>%{username}</span> <span>invited you to join a chat channel</span>"
in_reply_to: "In reply to"
heading: "Chat"
join: "Join"
new_messages: "new messages"
mention_warning:
dismiss: "dismiss"
cannot_see:
one: "%{username} cannot access this channel and was not notified."
other: "%{username} and %{others} cannot access this channel and were not notified."
invitations_sent:
one: "Invitation sent"
other: "Invitations sent"
invite: "Invite to channel"
without_membership:
one: "%{username} has not joined this channel."
other: "%{username} and %{others} have not joined this channel."
DEV: start glimmer-ification and optimisations of chat plugin (#19531) Note this is a very large PR, and some of it could have been splited, but keeping it one chunk made it to merge conflicts and to revert if necessary. Actual new code logic is also not that much, as most of the changes are removing js tests, adding system specs or moving things around. To make it possible this commit is doing the following changes: - converting (and adding new) existing js acceptances tests into system tests. This change was necessary to ensure as little regressions as possible while changing paradigm - moving away from store. Using glimmer and tracked properties requires to have class objects everywhere and as a result works well with models. However store/adapters are suffering from many bugs and limitations. As a workaround the `chat-api` and `chat-channels-manager` are an answer to this problem by encapsulating backend calls and frontend storage logic; while still using js models. - dropping `appEvents` as much as possible. Using tracked properties and a better local storage of channel models, allows to be much more reactive and doesn’t require arbitrary manual updates everywhere in the app. - while working on replacing store, the existing work of a chat api (backend) has been continued to support more cases. - removing code from the `chat` service to separate concerns, `chat-subscriptions-manager` and `chat-channels-manager`, being the largest examples of where the code has been rewritten/moved. Future wok: - improve behavior when closing/deleting a channel, it's already slightly buggy on live, it's rare enough that it's not a big issue, but should be improved - improve page objects used in chat - move more endpoints to the API - finish temporarily skipped tests - extract more code from the `chat` service - use glimmer for `chat-messages` - separate concerns in `chat-live-pane` - eventually add js tests for `chat-api`, `chat-channels-manager` and `chat-subscriptions-manager`, they are indirectly heavy tested through system tests but it would be nice to at least test the public API <!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in JavaScript). If your code does not include test coverage, please include an explanation of why it was omitted. -->
2022-12-21 07:21:02 -05:00
group_mentions_disabled:
one: "%{group_name} doesn't allow mentions"
other: "%{group_name} and %{others} doesn't allow mentions"
DEV: start glimmer-ification and optimisations of chat plugin (#19531) Note this is a very large PR, and some of it could have been splited, but keeping it one chunk made it to merge conflicts and to revert if necessary. Actual new code logic is also not that much, as most of the changes are removing js tests, adding system specs or moving things around. To make it possible this commit is doing the following changes: - converting (and adding new) existing js acceptances tests into system tests. This change was necessary to ensure as little regressions as possible while changing paradigm - moving away from store. Using glimmer and tracked properties requires to have class objects everywhere and as a result works well with models. However store/adapters are suffering from many bugs and limitations. As a workaround the `chat-api` and `chat-channels-manager` are an answer to this problem by encapsulating backend calls and frontend storage logic; while still using js models. - dropping `appEvents` as much as possible. Using tracked properties and a better local storage of channel models, allows to be much more reactive and doesn’t require arbitrary manual updates everywhere in the app. - while working on replacing store, the existing work of a chat api (backend) has been continued to support more cases. - removing code from the `chat` service to separate concerns, `chat-subscriptions-manager` and `chat-channels-manager`, being the largest examples of where the code has been rewritten/moved. Future wok: - improve behavior when closing/deleting a channel, it's already slightly buggy on live, it's rare enough that it's not a big issue, but should be improved - improve page objects used in chat - move more endpoints to the API - finish temporarily skipped tests - extract more code from the `chat` service - use glimmer for `chat-messages` - separate concerns in `chat-live-pane` - eventually add js tests for `chat-api`, `chat-channels-manager` and `chat-subscriptions-manager`, they are indirectly heavy tested through system tests but it would be nice to at least test the public API <!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in JavaScript). If your code does not include test coverage, please include an explanation of why it was omitted. -->
2022-12-21 07:21:02 -05:00
too_many_members:
one: "%{group_name} has too many members. No one was notified"
other: "%{group_name} and %{others} have too many members. No one was notified"
warning_multiple:
one: "%{count} other"
other: "%{count} others"
groups:
header:
some: "Some users won't be notified"
all: "Nobody will be notified"
unreachable:
one: "@%{group} doesn't allow mentions"
other: "@%{group} and @%{group_2} doesn't allow mentions"
unreachable_multiple: "@%{group} and %{count} others doesn't allow mentions"
too_many_members:
one: "Mentioning @%{group} exceeds the %{notification_limit} of %{limit}"
other: "Mentioning both @%{group} or @%{group_2} exceeds the %{notification_limit} of %{limit}"
too_many_members_multiple: "These %{count} groups exceed the %{notification_limit} of %{limit}"
users_limit:
one: "%{count} user"
other: "%{count} users"
notification_limit: "notification limit"
too_many_mentions: "This message exceeds the %{notification_limit} of %{limit}"
mentions_limit:
one: "%{count} mention"
other: "%{count} mentions"
aria_roles:
header: "Chat header"
composer: "Chat composer"
channels_list: "Chat channels list"
no_public_channels: "You have not joined any channels."
only_chat_push_notifications:
title: "Only send chat push notifications"
description: "Block all non-chat push notifications from being sent"
ignore_channel_wide_mention:
title: "Ignore channel-wide mentions"
description: "Do not send notifications for channel-wide mentions (@here and @all)"
open: "Open chat"
open_full_page: "Open full-screen chat"
close_full_page: "Close full-screen chat"
open_message: "Open message in chat"
placeholder_self: "Jot something down"
placeholder_others: "Chat with %{messageRecipient}"
placeholder_new_message_disallowed: "Channel is %{status}, you cannot send new messages right now."
placeholder_silenced: "You cannot send messages at this time."
placeholder_start_conversation: Start a conversation with %{usernames}
remove_upload: "Remove file"
react: "React with emoji"
reply: "Reply"
edit: "Edit"
copy_link: "Copy link"
rebake_message: "Rebuild HTML"
retry_staged_message:
title: "Network error"
action: "Send again?"
unreliable_network: "Network is unreliable, sending messages and saving draft might not work"
bookmark_message: "Bookmark"
bookmark_message_edit: "Edit Bookmark"
restore: "Restore deleted message"
save: "Save"
select: "Select"
silence: "Silence user"
return_to_list: "Return to channels list"
scroll_to_bottom: "Scroll to bottom"
scroll_to_new_messages: "See new messages"
sound:
title: "Desktop chat notification sound"
sounds:
none: "None"
bell: "Bell"
ding: "Ding"
title: "chat"
title_capitalized: "Chat"
upload: "Attach a file"
uploaded_files:
one: "%{count} file"
other: "%{count} files"
you_flagged: "You flagged this message"
exit: "back"
channel_status:
read_only_header: "Channel is read only"
read_only: "Read Only"
archived_header: "Channel is archived"
archived: "Archived"
archive_failed: "Archive channel failed. %{completed}/%{total} messages have been archived. <a target=\"_blank\" href=\"%{topic_url}\">the destination topic</a>. Press retry to attempt to complete the archive."
archive_failed_no_topic: "Archive channel failed. %{completed}/%{total} messages have been archived, the destination topic was not created. Press retry to attempt to complete the archive."
archive_completed: "See <a target=\"_blank\" href=\"%{topic_url}\">the archive topic</a>"
closed_header: "Channel is closed"
closed: "Closed"
open_header: "Channel is open"
open: "Open"
browse:
back: "Back"
title: Channels
filter_all: All
filter_open: Opened
filter_closed: Closed
filter_archived: Archived
filter_input_placeholder: Search channel by name
chat_message_separator:
today: Today
yesterday: Yesterday
members_view:
filter_placeholder: Find members
about_view:
associated_topic: Linked topic
associated_category: Linked category
title: Title
name: Name
description: Description
channel_info:
back_to_all_channels: "All channels"
back_to_channel: "Back"
tabs:
about: About
members: Members
settings: Settings
channel_edit_name_slug_modal:
title: Edit channel
input_placeholder: Add a name
slug_description: A channel slug is used in the URL instead of the channel name
name: Channel name
slug: Channel slug (optional)
channel_edit_description_modal:
title: Edit description
input_placeholder: Add a description
description: Tell people what this channel is all about
direct_message_creator:
title: New Message
prefix: "To:"
no_results: No results
selected_user_title: "Deselect %{username}"
channel_selector:
title: "Jump to channel"
no_channels: "No channels match your search"
channel:
no_memberships: This channel has no members
no_memberships_found: No members found
memberships_count:
one: "%{count} member"
other: "%{count} members"
create_channel:
auto_join_users:
public_category_warning: "%{category} is a public category. Automatically add all recently active users to this channel?"
warning_groups:
one: Automatically add %{members_count} users from %{group}?
other: Automatically add %{members_count} users from %{group} and %{group_2}?
warning_multiple_groups: Automatically add %{members_count} users from %{group_1} and %{count} others?
choose_category:
label: "Choose a category"
none: "select one..."
default_hint: Manage access by visiting <a href=%{link} target="_blank">%{category} security settings</a>
hint_groups:
one: Users in %{hint} will have access to this channel per the <a href=%{link} target="_blank">security settings</a>
other: Users in %{hint} and %{hint_2} will have access to this channel per the <a href=%{link} target="_blank">security settings</a>
hint_multiple_groups: Users in %{hint_1} and %{count} other groups will have access to this channel per the <a href=%{link} target="_blank">security settings</a>
create: "Create channel"
description: "Description (optional)"
name: "Channel name"
slug: "Channel slug (optional)"
title: "New channel"
type: "Type"
types:
category: "Category"
topic: "Topic"
reviewable:
type: "Chat message"
reactions:
only_you: "You reacted with :%{emoji}:"
and_others: "You, %{usernames} reacted with :%{emoji}:"
only_others: "%{usernames} reacted with :%{emoji}:"
others_and_more: "%{usernames} and %{more} others reacted with :%{emoji}:"
you_others_and_more: "You, %{usernames} and %{more} others reacted with :%{emoji}:"
composer:
toggle_toolbar: "Toggle toolbar"
italic_text: "emphasized text"
bold_text: "strong text"
code_text: "code text"
quote:
original_channel: 'Originally sent in <a href="%{channelLink}">%{channel}</a>'
copy_success: "Chat quote copied to clipboard"
notification_levels:
never: "Never"
mention: "Only for mentions"
always: "For all activity"
settings:
channel_wide_mentions_label: "Allow @all and @here mentions"
channel_wide_mentions_description: "Allow users to notify all members of #%{channel} with @all or only those who are active in the moment with @here"
auto_join_users_label: "Automatically add users"
auto_join_users_info: "Check hourly which users have been active in the last 3 months. Add them to this channel if they have access to the %{category} category."
auto_join_users_info_no_category: "Check hourly which users have been active in the last 3 months. Add them to this channel if they have access to the selected category."
auto_join_users_warning: "Every user who isn't a member of this channel and has access to the %{category} category will join. Are you sure?"
desktop_notification_level: "Desktop notifications"
follow: "Join"
followed: "Joined"
mobile_notification_level: "Mobile push notifications"
mute: "Mute channel"
muted_on: "On"
muted_off: "Off"
notifications: "Notifications"
preview: "Preview"
save: "Save"
saved: "Saved"
unfollow: "Leave"
admin_title: "Admin"
retention_info: "Chat history will be saved for %{days} days."
admin:
title: "Chat"
direct_messages:
title: "Personal chat"
new: "Create a personal chat"
create: "Go"
leave: "Leave this personal chat"
cannot_create: "Sorry, you cannot send direct messages."
incoming_webhooks:
back: "Back"
channel_placeholder: "Select a channel"
confirm_destroy: "Are you sure you want to delete this incoming webhook? This cannot be un-done."
current_emoji: "Current Emoji"
description: "Description"
delete: "Delete"
emoji: "Emoji"
emoji_instructions: "System avatar will be used if emoji is left blank."
name: "Name"
name_placeholder: "name..."
new: "New incoming webhook"
none: "No existing incoming webhooks created."
no_emoji: "No Emoji selected"
post_to: "Post to"
reset_emoji: "Reset Emoji"
save: "Save"
edit: "Edit"
select_emoji: "Choose Emoji"
system: "system"
title: "Incoming webhooks"
url: "URL"
url_instructions: "This URL contains a secret value - keep it safe."
username: "Username"
username_instructions: "Username of bot that posts to channel. Defaults to 'system' when left blank."
instructions: "Incoming webhooks can be used by external systems to post messages into a designated chat channel as a bot user via the <code>/hooks/:key</code> endpoint. The payload consists of a single <code>text</code> parameter, which is limited to 2000 characters.<br><br>We also support limited Slack-formatted <code>text</code> parameters, extracting links and mentions based on the format at <a href=\"https://api.slack.com/reference/surfaces/formatting\">https://api.slack.com/reference/surfaces/formatting</a>, but the <code>/hooks/:key/slack</code> endpoint must be used for this."
selection:
cancel: "Cancel"
quote_selection: "Quote in Topic"
copy: "Copy"
move_selection_to_channel: "Move to Channel"
error: "There was an error moving the chat messages"
title: "Move Chat to Topic"
new_topic:
title: "Move to New Topic"
instructions:
one: "You are about to create a new topic and populate it with the chat message you've selected."
other: "You are about to create a new topic and populate it with the <b>%{count}</b> chat messages you've selected."
instructions_channel_archive: "You are about to create a new topic and archive the channel messages to it."
existing_topic:
title: "Move to Existing Topic"
instructions:
one: "Please choose the topic you'd like to move that chat message to."
other: "Please choose the topic you'd like to move those <b>%{count}</b> chat messages to."
instructions_channel_archive: "Please choose the topic you'd like to archive the channel messages to."
new_message:
title: "Move to New Message"
instructions:
one: "You are about to create a new message and populate it with the chat message you've selected."
other: "You are about to create a new message and populate it with the <b>%{count}</b> chat messages you've selected."
replying_indicator:
single_user: "%{username} is typing"
multiple_users: "%{commaSeparatedUsernames} and %{lastUsername} are typing"
many_users:
one: "%{commaSeparatedUsernames} and %{count} other are typing"
other: "%{commaSeparatedUsernames} and %{count} others are typing"
retention_reminders:
public: "Channel history is retained for %{days} days."
dm: "Personal chat history is retained for %{days} days."
flags:
off_topic: "This message is not relevant to the current discussion as defined by the channel title, and should probably be moved elsewhere."
inappropriate: "This message contains content that a reasonable person would consider offensive, abusive, or a violation of <a href=\"%{basePath}/guidelines\">our community guidelines</a>."
spam: "This message is an advertisement, or vandalism. It is not useful or relevant to the current channel."
notify_user: "I want to talk to this person directly and personally about their message."
notify_moderators: "This message requires staff attention for another reason not listed above."
flagging:
action: "Flag message"
emoji_picker:
favorites: "Frequently used"
smileys_&_emotion: "Smileys and emotion"
objects: "Objects"
people_&_body: "People and body"
travel_&_places: "Travel and places"
animals_&_nature: "Animals and nature"
food_&_drink: "Food and drink"
activities: "Activities"
flags: "Flags"
symbols: "Symbols"
search_placeholder: "Search by emoji name and alias..."
no_results: "No results"
draft_channel_screen:
header: "New Message"
cancel: "Cancel"
notifications:
chat_invitation: "invited you to join a chat channel"
chat_invitation_html: "<span>%{username}</span> <span>invited you to join a chat channel</span>"
chat_quoted: "<span>%{username}</span> %{description}"
popup:
chat_mention:
direct: 'mentioned you in "%{channel}"'
direct_html: '<span>%{username}</span> <span>mentioned you in "%{channel}"</span>'
other_plain: 'mentioned %{identifier} in "%{channel}"'
other_html: '<span>%{username}</span> <span>mentioned %{identifier} in "%{channel}"</span>'
direct_message_chat_mention:
direct: "mentioned you in personal chat"
direct_html: "<span>%{username}</span> <span>mentioned you in personal chat</span>"
other_plain: "mentioned %{identifier} in personal chat"
other_html: "<span>%{username}</span> <span>mentioned %{identifier} in personal chat</span>"
chat_message: "New chat message"
chat_quoted: "%{username} quoted your chat message"
titles:
chat_mention: "Chat mention"
chat_invitation: "Chat invitation"
chat_quoted: "Chat quoted"
action_codes:
chat:
enabled: '%{who} enabled <button class="btn-link open-chat">chat</button> %{when}'
disabled: "%{who} closed chat %{when}"
discourse_automation:
scriptables:
send_chat_message:
title: Send chat message
fields:
chat_channel_id:
label: Chat channel ID
message:
label: Message
sender:
label: Sender
description: Defaults to system
review:
transcript:
view: "View previous messages transcript"
types:
reviewable_chat_message:
title: "Flagged Chat Message"
flagged_by: "Flagged By"
keyboard_shortcuts_help:
chat:
title: "Chat"
keyboard_shortcuts:
switch_channel_arrows: "%{shortcut} Switch channel"
open_quick_channel_selector: "%{shortcut} Open quick channel selector"
open_insert_link_modal: "%{shortcut} Insert hyperlink (composer only)"
composer_bold: "%{shortcut} Bold (composer only)"
composer_italic: "%{shortcut} Italic (composer only)"
composer_code: "%{shortcut} Code (composer only)"
drawer_open: "%{shortcut} Open chat drawer"
drawer_close: "%{shortcut} Close chat drawer"
topic_statuses:
chat:
help: "Chat is enabled for this topic"
user:
allow_private_messages: "Allow other users to send me personal messages and chat direct messages"
muted_users_instructions: "Suppress all notifications, personal messages, and chat direct messages from these users."
allowed_pm_users_instructions: "Only allow personal messages or chat direct messages from these users."
allow_private_messages_from_specific_users: "Only allow specific users to send me personal messages or chat direct messages"
ignored_users_instructions: "Suppress all posts, messages, notifications, personal messages, and chat direct messages from these users."
user_menu:
no_chat_notifications_title: "You dont have any chat notifications yet"
no_chat_notifications_body: >
You will be notified in this panel when someone direct messages you or <b>@mentions</b> you in chat. Notifications will also be sent to your email when you havent logged in for a while.
<br><br>
Click the title at the top of any chat channel to configure what notifications you receive in that channel. For more, see your <a href='%{preferencesUrl}'>notification preferences</a>.
tabs:
chat_notifications: "Chat notifications"
chat_notifications_with_unread:
one: "Chat notifications - %{count} unread notification"
other: "Chat notifications - %{count} unread notifications"