diff options
Diffstat (limited to 'webapp')
19 files changed, 146 insertions, 303 deletions
diff --git a/webapp/components/admin_console/policy_settings.jsx b/webapp/components/admin_console/policy_settings.jsx index c8c145b8d..13101e828 100644 --- a/webapp/components/admin_console/policy_settings.jsx +++ b/webapp/components/admin_console/policy_settings.jsx @@ -179,7 +179,7 @@ export default class PolicySettings extends AdminSettings { label={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelCreationTitle' - defaultMessage='Enable private group creation for:' + defaultMessage='Enable private channel creation for:' /> } value={this.state.restrictPrivateChannelCreation} @@ -187,7 +187,7 @@ export default class PolicySettings extends AdminSettings { helpText={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelCreationDescription' - defaultMessage='Set policy on who can create private groups.' + defaultMessage='Set policy on who can create private channels.' /> } /> @@ -202,7 +202,7 @@ export default class PolicySettings extends AdminSettings { label={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelManagementTitle' - defaultMessage='Enable private group renaming for:' + defaultMessage='Enable private channel renaming for:' /> } value={this.state.restrictPrivateChannelManagement} @@ -210,7 +210,7 @@ export default class PolicySettings extends AdminSettings { helpText={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelManagementDescription' - defaultMessage='Set policy on who can rename and set the header or purpose for private groups.' + defaultMessage='Set policy on who can rename and set the header or purpose for private channels.' /> } /> @@ -225,7 +225,7 @@ export default class PolicySettings extends AdminSettings { label={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelDeletionTitle' - defaultMessage='Enable private group deletion for:' + defaultMessage='Enable private channel deletion for:' /> } value={this.state.restrictPrivateChannelDeletion} @@ -233,7 +233,7 @@ export default class PolicySettings extends AdminSettings { helpText={ <FormattedMessage id='admin.general.policy.restrictPrivateChannelDeletionDescription' - defaultMessage='Set policy on who can delete private groups. Deleted groups can be recovered from the database using a {commandLineToolLink}.' + defaultMessage='Set policy on who can delete private channels. Deleted channels can be recovered from the database using a {commandLineToolLink}.' values={{ commandLineToolLink: ( <a diff --git a/webapp/components/analytics/system_analytics.jsx b/webapp/components/analytics/system_analytics.jsx index bd09b8b0b..b7a10f43b 100644 --- a/webapp/components/analytics/system_analytics.jsx +++ b/webapp/components/analytics/system_analytics.jsx @@ -12,34 +12,11 @@ import * as AsyncClient from 'utils/async_client.jsx'; import Constants from 'utils/constants.jsx'; const StatTypes = Constants.StatTypes; -import {injectIntl, intlShape, defineMessages, FormattedMessage, FormattedHTMLMessage} from 'react-intl'; - -const holders = defineMessages({ - analyticsPublicChannels: { - id: 'analytics.system.publicChannels', - defaultMessage: 'Public Channels' - }, - analyticsPrivateGroups: { - id: 'analytics.system.privateGroups', - defaultMessage: 'Private Groups' - }, - analyticsFilePosts: { - id: 'analytics.system.totalFilePosts', - defaultMessage: 'Posts with Files' - }, - analyticsHashtagPosts: { - id: 'analytics.system.totalHashtagPosts', - defaultMessage: 'Posts with Hashtags' - }, - analyticsTextPosts: { - id: 'analytics.system.textPosts', - defaultMessage: 'Posts with Text-only' - } -}); +import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; import React from 'react'; -class SystemAnalytics extends React.Component { +export default class SystemAnalytics extends React.Component { constructor(props) { super(props); @@ -249,8 +226,8 @@ class SystemAnalytics extends React.Component { </div> ); - const channelTypeData = formatChannelDoughtnutData(stats[StatTypes.TOTAL_PUBLIC_CHANNELS], stats[StatTypes.TOTAL_PRIVATE_GROUPS], this.props.intl); - const postTypeData = formatPostDoughtnutData(stats[StatTypes.TOTAL_FILE_POSTS], stats[StatTypes.TOTAL_HASHTAG_POSTS], stats[StatTypes.TOTAL_POSTS], this.props.intl); + const channelTypeData = formatChannelDoughtnutData(stats[StatTypes.TOTAL_PUBLIC_CHANNELS], stats[StatTypes.TOTAL_PRIVATE_GROUPS]); + const postTypeData = formatPostDoughtnutData(stats[StatTypes.TOTAL_FILE_POSTS], stats[StatTypes.TOTAL_HASHTAG_POSTS], stats[StatTypes.TOTAL_POSTS]); let postTypeGraph; if (stats[StatTypes.TOTAL_POSTS] !== -1) { @@ -430,16 +407,12 @@ class SystemAnalytics extends React.Component { } } -SystemAnalytics.propTypes = { - intl: intlShape.isRequired -}; - -export default injectIntl(SystemAnalytics); - -export function formatChannelDoughtnutData(totalPublic, totalPrivate, intl) { - const {formatMessage} = intl; +export function formatChannelDoughtnutData(totalPublic, totalPrivate) { const channelTypeData = { - labels: [formatMessage(holders.analyticsPublicChannels), formatMessage(holders.analyticsPrivateGroups)], + labels: [ + Utils.localizeMessage('analytics.system.publicChannels', 'Public Channels'), + Utils.localizeMessage('analytics.system.privateGroups', 'Private Channels') + ], datasets: [{ data: [totalPublic, totalPrivate], backgroundColor: ['#46BFBD', '#FDB45C'], @@ -450,10 +423,13 @@ export function formatChannelDoughtnutData(totalPublic, totalPrivate, intl) { return channelTypeData; } -export function formatPostDoughtnutData(filePosts, hashtagPosts, totalPosts, intl) { - const {formatMessage} = intl; +export function formatPostDoughtnutData(filePosts, hashtagPosts, totalPosts) { const postTypeData = { - labels: [formatMessage(holders.analyticsFilePosts), formatMessage(holders.analyticsHashtagPosts), formatMessage(holders.analyticsTextPosts)], + labels: [ + Utils.localizeMessage('analytics.system.totalFilePosts', 'Posts with Files'), + Utils.localizeMessage('analytics.system.totalHashtagPosts', 'Posts with Hashtags'), + Utils.localizeMessage('analytics.system.textPosts', 'Posts with Text-only') + ], datasets: [{ data: [filePosts, hashtagPosts, (totalPosts - filePosts - hashtagPosts)], backgroundColor: ['#46BFBD', '#F7464A', '#FDB45C'], diff --git a/webapp/components/analytics/team_analytics.jsx b/webapp/components/analytics/team_analytics.jsx index 135bab4b4..cc179a370 100644 --- a/webapp/components/analytics/team_analytics.jsx +++ b/webapp/components/analytics/team_analytics.jsx @@ -270,7 +270,7 @@ export default class TeamAnalytics extends React.Component { title={ <FormattedMessage id='analytics.team.privateGroups' - defaultMessage='Private Groups' + defaultMessage='Private Channels' /> } icon='fa-globe' diff --git a/webapp/components/audit_table.jsx b/webapp/components/audit_table.jsx index 34e61dbac..e7d366f04 100644 --- a/webapp/components/audit_table.jsx +++ b/webapp/components/audit_table.jsx @@ -14,7 +14,7 @@ const holders = defineMessages({ }, channelCreated: { id: 'audit_table.channelCreated', - defaultMessage: 'Created the {channelName} channel/group' + defaultMessage: 'Created the {channelName} channel' }, establishedDM: { id: 'audit_table.establishedDM', @@ -22,23 +22,23 @@ const holders = defineMessages({ }, nameUpdated: { id: 'audit_table.nameUpdated', - defaultMessage: 'Updated the {channelName} channel/group name' + defaultMessage: 'Updated the {channelName} channel name' }, headerUpdated: { id: 'audit_table.headerUpdated', - defaultMessage: 'Updated the {channelName} channel/group header' + defaultMessage: 'Updated the {channelName} channel header' }, channelDeleted: { id: 'audit_table.channelDeleted', - defaultMessage: 'Deleted the channel/group with the URL {url}' + defaultMessage: 'Deleted the channel with the URL {url}' }, userAdded: { id: 'audit_table.userAdded', - defaultMessage: 'Added {username} to the {channelName} channel/group' + defaultMessage: 'Added {username} to the {channelName} channel' }, userRemoved: { id: 'audit_table.userRemoved', - defaultMessage: 'Removed {username} to the {channelName} channel/group' + defaultMessage: 'Removed {username} to the {channelName} channel' }, attemptedRegisterApp: { id: 'audit_table.attemptedRegisterApp', diff --git a/webapp/components/change_url_modal.jsx b/webapp/components/change_url_modal.jsx index 509517678..fd5cdfd74 100644 --- a/webapp/components/change_url_modal.jsx +++ b/webapp/components/change_url_modal.jsx @@ -25,6 +25,7 @@ export default class ChangeUrlModal extends React.Component { userEdit: false }; } + componentWillReceiveProps(nextProps) { // This check prevents the url being deleted when we re-render // because of user status check @@ -34,15 +35,18 @@ export default class ChangeUrlModal extends React.Component { }); } } + componentDidUpdate(prevProps) { if (this.props.show === true && prevProps.show === false) { ReactDOM.findDOMNode(this.refs.urlinput).select(); } } + onURLChanged(e) { const url = e.target.value.trim(); this.setState({currentURL: url.replace(/[^A-Za-z0-9-_]/g, '').toLowerCase(), userEdit: true}); } + getURLError(url) { let error = []; //eslint-disable-line prefer-const if (url.length < 2) { @@ -101,6 +105,7 @@ export default class ChangeUrlModal extends React.Component { } return error; } + doSubmit(e) { e.preventDefault(); @@ -113,10 +118,12 @@ export default class ChangeUrlModal extends React.Component { this.setState({urlError: '', userEdit: false}); this.props.onModalSubmit(url); } + doCancel() { this.setState({urlError: '', userEdit: false}); this.props.onModalDismissed(); } + render() { let urlClass = 'input-group input-group--limit'; let error = null; @@ -155,9 +162,19 @@ export default class ChangeUrlModal extends React.Component { className='form-horizontal' > <Modal.Body> - <div className='modal-intro'>{this.props.description}</div> + <div className='modal-intro'> + <FormattedMessage + id='channel_flow.changeUrlDescription' + defaultMessage='Some characters are now allowed in URLs and may be removed.' + /> + </div> <div className='form-group'> - <label className='col-sm-2 form__label control-label'>{this.props.urlLabel}</label> + <label className='col-sm-2 form__label control-label'> + <FormattedMessage + id='change_url.urlLabel' + defaultMessage='Channel URL' + /> + </label> <div className='col-sm-10'> <div className={urlClass}> <OverlayTrigger @@ -211,8 +228,6 @@ export default class ChangeUrlModal extends React.Component { ChangeUrlModal.defaultProps = { show: false, title: 'Change URL', - desciption: '', - urlLabel: 'URL', submitButtonText: 'Save', currentURL: '', serverError: null @@ -220,10 +235,8 @@ ChangeUrlModal.defaultProps = { ChangeUrlModal.propTypes = { show: React.PropTypes.bool.isRequired, - title: React.PropTypes.string, - description: React.PropTypes.string, - urlLabel: React.PropTypes.string, - submitButtonText: React.PropTypes.string, + title: React.PropTypes.node, + submitButtonText: React.PropTypes.node, currentURL: React.PropTypes.string, serverError: React.PropTypes.node, onModalSubmit: React.PropTypes.func.isRequired, diff --git a/webapp/components/channel_header.jsx b/webapp/components/channel_header.jsx index 6ce56ab4e..9c9876419 100644 --- a/webapp/components/channel_header.jsx +++ b/webapp/components/channel_header.jsx @@ -349,21 +349,6 @@ export default class ChannelHeader extends React.Component { channelTitle = ChannelUtils.buildGroupChannelName(channel.id); } - let channelTerm = ( - <FormattedMessage - id='channel_header.channel' - defaultMessage='Channel' - /> - ); - if (channel.type === Constants.PRIVATE_CHANNEL) { - channelTerm = ( - <FormattedMessage - id='channel_header.group' - defaultMessage='Group' - /> - ); - } - let popoverListMembers; if (!isDirect) { popoverListMembers = ( @@ -560,10 +545,7 @@ export default class ChannelHeader extends React.Component { > <FormattedMessage id='channel_header.delete' - defaultMessage='Delete {term}' - values={{ - term: (channelTerm) - }} + defaultMessage='Delete Channel' /> </ToggleModalButton> </li> @@ -590,10 +572,7 @@ export default class ChannelHeader extends React.Component { > <FormattedMessage id='channel_header.setHeader' - defaultMessage='Edit {term} Header' - values={{ - term: (channelTerm) - }} + defaultMessage='Edit Channel Header' /> </ToggleModalButton> </li> @@ -612,10 +591,7 @@ export default class ChannelHeader extends React.Component { > <FormattedMessage id='channel_header.setPurpose' - defaultMessage='Edit {term} Purpose' - values={{ - term: (channelTerm) - }} + defaultMessage='Edit Channel Purpose' /> </a> </li> @@ -634,10 +610,7 @@ export default class ChannelHeader extends React.Component { > <FormattedMessage id='channel_header.rename' - defaultMessage='Rename {term}' - values={{ - term: (channelTerm) - }} + defaultMessage='Rename Channel' /> </a> </li> @@ -674,10 +647,7 @@ export default class ChannelHeader extends React.Component { > <FormattedMessage id='channel_header.leave' - defaultMessage='Leave {term}' - values={{ - term: (channelTerm) - }} + defaultMessage='Leave Channel' /> </a> </li> diff --git a/webapp/components/delete_channel_modal.jsx b/webapp/components/delete_channel_modal.jsx index a6577a4a9..1893d28d1 100644 --- a/webapp/components/delete_channel_modal.jsx +++ b/webapp/components/delete_channel_modal.jsx @@ -3,7 +3,6 @@ import {Modal} from 'react-bootstrap'; import TeamStore from 'stores/team_store.jsx'; -import Constants from 'utils/constants.jsx'; import {FormattedMessage} from 'react-intl'; @@ -37,21 +36,6 @@ export default class DeleteChannelModal extends React.Component { } render() { - let channelTerm = ( - <FormattedMessage - id='delete_channel.channel' - defaultMessage='channel' - /> - ); - if (this.props.channel.type === Constants.PRIVATE_CHANNEL) { - channelTerm = ( - <FormattedMessage - id='delete_channel.group' - defaultMessage='group' - /> - ); - } - return ( <Modal show={this.state.show} @@ -70,10 +54,9 @@ export default class DeleteChannelModal extends React.Component { <div className='alert alert-danger'> <FormattedMessage id='delete_channel.question' - defaultMessage='This will delete the channel from the team and make its contents inaccessible for all users. Are you sure you wish to delete the {display_name} {term}?' + defaultMessage='This will delete the channel from the team and make its contents inaccessible for all users. Are you sure you wish to delete the {display_name} channel?' values={{ - display_name: this.props.channel.display_name, - term: (channelTerm) + display_name: this.props.channel.display_name }} /> </div> diff --git a/webapp/components/edit_channel_purpose_modal.jsx b/webapp/components/edit_channel_purpose_modal.jsx index 7ee00baba..ea34cf969 100644 --- a/webapp/components/edit_channel_purpose_modal.jsx +++ b/webapp/components/edit_channel_purpose_modal.jsx @@ -110,21 +110,6 @@ export default class EditChannelPurposeModal extends React.Component { ); } - let channelType = ( - <FormattedMessage - id='edit_channel_purpose_modal.channel' - defaultMessage='Channel' - /> - ); - if (this.props.channel.type === Constants.PRIVATE_CHANNEL) { - channelType = ( - <FormattedMessage - id='edit_channel_purpose_modal.group' - defaultMessage='Group' - /> - ); - } - return ( <Modal className='modal-edit-channel-purpose' @@ -142,10 +127,7 @@ export default class EditChannelPurposeModal extends React.Component { <p> <FormattedMessage id='edit_channel_purpose_modal.body' - defaultMessage='Describe how this {type} should be used. This text appears in the channel list in the "More..." menu and helps others decide whether to join.' - values={{ - type: (channelType) - }} + defaultMessage='Describe how this channel should be used. This text appears in the channel list in the "More..." menu and helps others decide whether to join.' /> </p> <textarea diff --git a/webapp/components/integrations/components/abstract_incoming_webhook.jsx b/webapp/components/integrations/components/abstract_incoming_webhook.jsx index eda545bb1..15e39e54b 100644 --- a/webapp/components/integrations/components/abstract_incoming_webhook.jsx +++ b/webapp/components/integrations/components/abstract_incoming_webhook.jsx @@ -203,7 +203,7 @@ export default class AbstractIncomingWebhook extends React.Component { <div className='form__help'> <FormattedMessage id='add_incoming_webhook.channel.help' - defaultMessage='Public channel or private group that receives the webhook payloads. You must belong to the private group when setting up the webhook.' + defaultMessage='Public or private channel that receives the webhook payloads. You must belong to the private channel when setting up the webhook.' /> </div> </div> diff --git a/webapp/components/leave_team_modal.jsx b/webapp/components/leave_team_modal.jsx index f8f5675c7..69504ef4d 100644 --- a/webapp/components/leave_team_modal.jsx +++ b/webapp/components/leave_team_modal.jsx @@ -81,7 +81,7 @@ class LeaveTeamModal extends React.Component { <Modal.Body> <FormattedMessage id='leave_team_modal.desc' - defaultMessage='You will be removed from all public channels and private groups. If the team is private you will not be able to rejoin the team. Are you sure?' + defaultMessage='You will be removed from all public and private channels. If the team is private you will not be able to rejoin the team. Are you sure?' /> </Modal.Body> <Modal.Footer> diff --git a/webapp/components/more_direct_channels.jsx b/webapp/components/more_direct_channels.jsx index c4a3a3526..4d5016907 100644 --- a/webapp/components/more_direct_channels.jsx +++ b/webapp/components/more_direct_channels.jsx @@ -266,14 +266,14 @@ export default class MoreDirectChannels extends React.Component { note = ( <FormattedMessage id='more_direct_channels.new_convo_note.full' - defaultMessage='You’ve reached the maximum number of people for this conversation. Consider creating a private group instead.' + defaultMessage='You’ve reached the maximum number of people for this conversation. Consider creating a private channel instead.' /> ); } else { note = ( <FormattedMessage id='more_direct_channels.new_convo_note' - defaultMessage='This will start a new conversation. If you’re adding a lot of people, consider creating a private group instead.' + defaultMessage='This will start a new conversation. If you’re adding a lot of people, consider creating a private channel instead.' /> ); } diff --git a/webapp/components/navbar.jsx b/webapp/components/navbar.jsx index 28d8fae05..62fb61d97 100644 --- a/webapp/components/navbar.jsx +++ b/webapp/components/navbar.jsx @@ -241,21 +241,6 @@ export default class Navbar extends React.Component { createDropdown(channel, channelTitle, isAdmin, isSystemAdmin, isChannelAdmin, isDirect, isGroup, popoverContent) { if (channel) { - let channelTerm = ( - <FormattedMessage - id='channel_header.channel' - defaultMessage='Channel' - /> - ); - if (channel.type === Constants.PRIVATE_CHANNEL) { - channelTerm = ( - <FormattedMessage - id='channel_header.group' - defaultMessage='Group' - /> - ); - } - let viewInfoOption; let viewPinnedPostsOption; let addMembersOption; @@ -449,10 +434,7 @@ export default class Navbar extends React.Component { > <FormattedMessage id='channel_header.setHeader' - defaultMessage='Set {term} Header...' - values={{ - term: (channelTerm) - }} + defaultMessage='Edit Channel Header' /> </a> </li> @@ -467,10 +449,7 @@ export default class Navbar extends React.Component { > <FormattedMessage id='channel_header.setPurpose' - defaultMessage='Set {term} Purpose...' - values={{ - term: (channelTerm) - }} + defaultMessage='Edit Channel Purpose' /> </a> </li> @@ -485,10 +464,7 @@ export default class Navbar extends React.Component { > <FormattedMessage id='channel_header.rename' - defaultMessage='Rename {term}...' - values={{ - term: (channelTerm) - }} + defaultMessage='Rename Channel' /> </a> </li> @@ -506,10 +482,7 @@ export default class Navbar extends React.Component { > <FormattedMessage id='channel_header.delete' - defaultMessage='Delete {term}...' - values={{ - term: (channelTerm) - }} + defaultMessage='Delete Channel' /> </ToggleModalButton> </li> @@ -528,10 +501,7 @@ export default class Navbar extends React.Component { > <FormattedMessage id='channel_header.leave' - defaultMessage='Leave {term}' - values={{ - term: (channelTerm) - }} + defaultMessage='Leave Channel' /> </a> </li> diff --git a/webapp/components/new_channel_flow.jsx b/webapp/components/new_channel_flow.jsx index eb67c9cba..55e47b149 100644 --- a/webapp/components/new_channel_flow.jsx +++ b/webapp/components/new_channel_flow.jsx @@ -9,43 +9,17 @@ import {cleanUpUrlable} from 'utils/url.jsx'; import NewChannelModal from './new_channel_modal.jsx'; import ChangeURLModal from './change_url_modal.jsx'; -import {intlShape, injectIntl, defineMessages, FormattedMessage} from 'react-intl'; +import {FormattedMessage} from 'react-intl'; import {createChannel} from 'actions/channel_actions.jsx'; import {browserHistory} from 'react-router/es6'; const SHOW_NEW_CHANNEL = 1; const SHOW_EDIT_URL = 2; const SHOW_EDIT_URL_THEN_COMPLETE = 3; -const messages = defineMessages({ - channel: { - id: 'channel_flow.channel', - defaultMessage: 'Channel' - }, - group: { - id: 'channel_flow.group', - defaultMessage: 'Group' - }, - change: { - id: 'channel_flow.changeUrlTitle', - defaultMessage: 'Change {term} URL' - }, - set: { - id: 'channel_flow.set_url_title', - defaultMessage: 'Set {term} URL' - }, - create: { - id: 'channel_flow.create', - defaultMessage: 'Create {term}' - }, - changeUrlDescription: { - id: 'channel_flow.changeUrlDescription', - defaultMessage: 'Some characters are not allowed in URLs and may be removed.' - } -}); import React from 'react'; -class NewChannelFlow extends React.Component { +export default class NewChannelFlow extends React.Component { constructor(props) { super(props); @@ -182,9 +156,6 @@ class NewChannelFlow extends React.Component { let changeURLTitle = ''; let changeURLSubmitButtonText = ''; - let channelTerm = ''; - - const {formatMessage} = this.props.intl; // Only listen to flow state if we are being shown if (this.props.show) { @@ -192,21 +163,34 @@ class NewChannelFlow extends React.Component { case SHOW_NEW_CHANNEL: if (this.state.channelType === 'O') { showChannelModal = true; - channelTerm = formatMessage(messages.channel); } else { showGroupModal = true; - channelTerm = formatMessage(messages.group); } break; case SHOW_EDIT_URL: showChangeURLModal = true; - changeURLTitle = formatMessage(messages.change, {term: channelTerm}); - changeURLSubmitButtonText = formatMessage(messages.change, {term: channelTerm}); + changeURLTitle = ( + <FormattedMessage + id='channel_flow.changeUrlTitle' + defaultMessage='Change Channel URL' + /> + ); + changeURLSubmitButtonText = changeURLTitle; break; case SHOW_EDIT_URL_THEN_COMPLETE: showChangeURLModal = true; - changeURLTitle = formatMessage(messages.set, {term: channelTerm}); - changeURLSubmitButtonText = formatMessage(messages.create, {term: channelTerm}); + changeURLTitle = ( + <FormattedMessage + id='channel_flow.set_url_title' + defaultMessage='Set Channel URL' + /> + ); + changeURLSubmitButtonText = ( + <FormattedMessage + id='channel_flow.create' + defaultMessage='Create Channel' + /> + ); break; } } @@ -239,8 +223,6 @@ class NewChannelFlow extends React.Component { <ChangeURLModal show={showChangeURLModal} title={changeURLTitle} - description={formatMessage(messages.changeUrlDescription)} - urlLabel={channelTerm + ' URL'} submitButtonText={changeURLSubmitButtonText} currentURL={this.state.channelName} serverError={this.state.serverError} @@ -259,10 +241,7 @@ NewChannelFlow.defaultProps = { }; NewChannelFlow.propTypes = { - intl: intlShape.isRequired, show: React.PropTypes.bool.isRequired, channelType: React.PropTypes.string.isRequired, onModalDismissed: React.PropTypes.func.isRequired }; - -export default injectIntl(NewChannelFlow); diff --git a/webapp/components/new_channel_modal.jsx b/webapp/components/new_channel_modal.jsx index f16b4596f..b515d5469 100644 --- a/webapp/components/new_channel_modal.jsx +++ b/webapp/components/new_channel_modal.jsx @@ -135,7 +135,7 @@ export default class NewChannelModal extends React.Component { > <FormattedMessage id='channel_modal.privateGroup2' - defaultMessage='Create a private group' + defaultMessage='Create a private channel' /> </a> ); @@ -151,33 +151,20 @@ export default class NewChannelModal extends React.Component { createPrivateChannelLink = null; } - var channelTerm = ''; var channelSwitchText = ''; switch (this.props.channelType) { case 'P': - channelTerm = ( - <FormattedMessage - id='channel_modal.group' - defaultMessage='Group' - /> - ); channelSwitchText = ( <div className='modal-intro'> <FormattedMessage id='channel_modal.privateGroup1' - defaultMessage='Create a new private group with restricted membership. ' + defaultMessage='Create a new private channel with restricted membership. ' /> {createPublicChannelLink} </div> ); break; case 'O': - channelTerm = ( - <FormattedMessage - id='channel_modal.channel' - defaultMessage='Channel' - /> - ); channelSwitchText = ( <div className='modal-intro'> <FormattedMessage @@ -205,9 +192,8 @@ export default class NewChannelModal extends React.Component { <Modal.Title> <FormattedMessage id='channel_modal.modalTitle' - defaultMessage='New ' + defaultMessage='New Channel' /> - {channelTerm} </Modal.Title> </Modal.Header> <form @@ -282,10 +268,7 @@ export default class NewChannelModal extends React.Component { <p className='input__help'> <FormattedMessage id='channel_modal.descriptionHelp' - defaultMessage='Describe how this {term} should be used.' - values={{ - term: (channelTerm) - }} + defaultMessage='Describe how this channel should be used.' /> </p> </div> @@ -319,10 +302,7 @@ export default class NewChannelModal extends React.Component { <p className='input__help'> <FormattedMessage id='channel_modal.headerHelp' - defaultMessage='Set text that will appear in the header of the {term} beside the {term} name. For example, include frequently used links by typing [Link Title](http://example.com).' - values={{ - term: (channelTerm) - }} + defaultMessage='Set text that will appear in the header of the channel beside the channel name. For example, include frequently used links by typing [Link Title](http://example.com).' /> </p> {serverError} @@ -348,9 +328,8 @@ export default class NewChannelModal extends React.Component { > <FormattedMessage id='channel_modal.createNew' - defaultMessage='Create New ' + defaultMessage='Create New Channel' /> - {channelTerm} </button> </Modal.Footer> </form> diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index 940f0b0a6..76ac81c6e 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -446,7 +446,7 @@ export default class Sidebar extends React.Component { <div> <FormattedHTMLMessage id='sidebar.tutorialScreen1' - defaultMessage='<h4>Channels</h4><p><strong>Channels</strong> organize conversations across different topics. They’re open to everyone on your team. To send private communications use <strong>Direct Messages</strong> for a single person or <strong>Private Groups</strong> for multiple people.</p>' + defaultMessage='<h4>Channels</h4><p><strong>Channels</strong> organize conversations across different topics. They’re open to everyone on your team. To send private communications use <strong>Direct Messages</strong> for a single person or <strong>Private Channels</strong> for multiple people.</p>' /> </div> ); @@ -473,7 +473,7 @@ export default class Sidebar extends React.Component { id='sidebar.tutorialScreen3' defaultMessage='<h4>Creating and Joining Channels</h4> <p>Click <strong>"More..."</strong> to create a new channel or join an existing one.</p> - <p>You can also create a new channel or private group by clicking the <strong>"+" symbol</strong> next to the channel or private group header.</p>' + <p>You can also create a new public or private channel by clicking the <strong>"+" symbol</strong> next to the public or private channel header.</p>' /> </div> ); @@ -700,7 +700,7 @@ export default class Sidebar extends React.Component { <Tooltip id='new-channel-tooltip' > <FormattedMessage id='sidebar.createChannel' - defaultMessage='Create new channel' + defaultMessage='Create new public channel' /> </Tooltip> ); @@ -708,7 +708,7 @@ export default class Sidebar extends React.Component { <Tooltip id='new-group-tooltip'> <FormattedMessage id='sidebar.createGroup' - defaultMessage='Create new group' + defaultMessage='Create new private channel' /> </Tooltip> ); @@ -872,7 +872,7 @@ export default class Sidebar extends React.Component { <h4> <FormattedMessage id='sidebar.pg' - defaultMessage='Private Groups' + defaultMessage='Private Channels' /> {createPrivateChannelIcon} </h4> diff --git a/webapp/components/suggestion/search_suggestion_list.jsx b/webapp/components/suggestion/search_suggestion_list.jsx index 99262109a..ee7a77366 100644 --- a/webapp/components/suggestion/search_suggestion_list.jsx +++ b/webapp/components/suggestion/search_suggestion_list.jsx @@ -33,7 +33,7 @@ export default class SearchSuggestionList extends SuggestionList { text = ( <FormattedMessage id='suggestion.search.private' - defaultMessage='Private Groups' + defaultMessage='Private Channels' /> ); } diff --git a/webapp/components/tutorial/tutorial_intro_screens.jsx b/webapp/components/tutorial/tutorial_intro_screens.jsx index c266191b8..5197696c4 100644 --- a/webapp/components/tutorial/tutorial_intro_screens.jsx +++ b/webapp/components/tutorial/tutorial_intro_screens.jsx @@ -162,7 +162,7 @@ export default class TutorialIntroScreens extends React.Component { <FormattedHTMLMessage id='tutorial_intro.screenTwo' defaultMessage='<h3>How Mattermost works:</h3> - <p>Communication happens in public discussion channels, private groups and direct messages.</p> + <p>Communication happens in public discussion channels, private channels and direct messages.</p> <p>Everything is archived and searchable from any web-enabled desktop, laptop or phone.</p>' /> {appDownloadLink} diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index b60db31cd..036bcd2d3 100755 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -86,7 +86,7 @@ "add_emoji.save": "Save", "add_incoming_webhook.cancel": "Cancel", "add_incoming_webhook.channel": "Channel", - "add_incoming_webhook.channel.help": "Public channel or private group that receives the webhook payloads. You must belong to the private group when setting up the webhook.", + "add_incoming_webhook.channel.help": "Public or private channel that receives the webhook payloads. You must belong to the private channel when setting up the webhook.", "add_incoming_webhook.channelRequired": "A valid channel is required", "add_incoming_webhook.description": "Description", "add_incoming_webhook.description.help": "Description for your incoming webhook.", @@ -329,13 +329,13 @@ "admin.general.policy.permissionsSystemAdmin": "System Admins", "admin.general.policy.restrictPostDeleteDescription": "Set policy on who has permission to delete messages.", "admin.general.policy.restrictPostDeleteTitle": "Allow which users to delete messages:", - "admin.general.policy.restrictPrivateChannelCreationDescription": "Set policy on who can create private groups.", - "admin.general.policy.restrictPrivateChannelCreationTitle": "Enable private group creation for:", + "admin.general.policy.restrictPrivateChannelCreationDescription": "Set policy on who can create private channels.", + "admin.general.policy.restrictPrivateChannelCreationTitle": "Enable private channel creation for:", "admin.general.policy.restrictPrivateChannelDeletionCommandLineToolLink": "command line tool", - "admin.general.policy.restrictPrivateChannelDeletionDescription": "Set policy on who can delete private groups. Deleted groups can be recovered from the database using a {commandLineToolLink}.", - "admin.general.policy.restrictPrivateChannelDeletionTitle": "Enable private group deletion for:", - "admin.general.policy.restrictPrivateChannelManagementDescription": "Set policy on who can rename and set the header or purpose for private groups.", - "admin.general.policy.restrictPrivateChannelManagementTitle": "Enable private group renaming for:", + "admin.general.policy.restrictPrivateChannelDeletionDescription": "Set policy on who can delete private channels. Deleted channels can be recovered from the database using a {commandLineToolLink}.", + "admin.general.policy.restrictPrivateChannelDeletionTitle": "Enable private channel deletion for:", + "admin.general.policy.restrictPrivateChannelManagementDescription": "Set policy on who can rename and set the header or purpose for private channels.", + "admin.general.policy.restrictPrivateChannelManagementTitle": "Enable private channel renaming for:", "admin.general.policy.restrictPublicChannelCreationDescription": "Set policy on who can create public channels.", "admin.general.policy.restrictPublicChannelCreationTitle": "Enable public channel creation for:", "admin.general.policy.restrictPublicChannelDeletionCommandLineToolLink": "command line tool", @@ -941,7 +941,7 @@ "analytics.system.dailyActiveUsers": "Daily Active Users", "analytics.system.monthlyActiveUsers": "Monthly Active Users", "analytics.system.postTypes": "Posts, Files and Hashtags", - "analytics.system.privateGroups": "Private Groups", + "analytics.system.privateGroups": "Private Channels", "analytics.system.publicChannels": "Public Channels", "analytics.system.skippedIntensiveQueries": "To maximize performance, some statistics are disabled. You can re-enable them in config.json. See: <a href='https://docs.mattermost.com/administration/statistics.html' target='_blank'>https://docs.mattermost.com/administration/statistics.html</a>", "analytics.system.textPosts": "Posts with Text-only", @@ -962,7 +962,7 @@ "analytics.team.activeUsers": "Active Users With Posts", "analytics.team.newlyCreated": "Newly Created Users", "analytics.team.noTeams": "There are no teams on this server for which to view statistics.", - "analytics.team.privateGroups": "Private Groups", + "analytics.team.privateGroups": "Private Channels", "analytics.team.publicChannels": "Public Channels", "analytics.team.recentActive": "Recent Active Users", "analytics.team.recentUsers": "Recent Active Users", @@ -995,8 +995,8 @@ "audit_table.attemptedWebhookDelete": "Attempted to delete a webhook", "audit_table.by": " by {username}", "audit_table.byAdmin": " by an admin", - "audit_table.channelCreated": "Created the {channelName} channel/group", - "audit_table.channelDeleted": "Deleted the channel/group with the URL {url}", + "audit_table.channelCreated": "Created the {channelName} channel", + "audit_table.channelDeleted": "Deleted the channel with the URL {url}", "audit_table.establishedDM": "Established a direct message channel with {username}", "audit_table.failedExpiredLicenseAdd": "Failed to add a new license as it has either expired or not yet been started", "audit_table.failedInvalidLicenseAdd": "Failed to add an invalid license", @@ -1005,14 +1005,14 @@ "audit_table.failedPassword": "Failed to change password - tried to update user password who was logged in through OAuth", "audit_table.failedWebhookCreate": "Failed to create a webhook - bad channel permissions", "audit_table.failedWebhookDelete": "Failed to delete a webhook - inappropriate conditions", - "audit_table.headerUpdated": "Updated the {channelName} channel/group header", + "audit_table.headerUpdated": "Updated the {channelName} channel header", "audit_table.ip": "IP Address", "audit_table.licenseRemoved": "Successfully removed a license", "audit_table.loginAttempt": " (Login attempt)", "audit_table.loginFailure": " (Login failure)", "audit_table.logout": "Logged out of your account", "audit_table.member": "member", - "audit_table.nameUpdated": "Updated the {channelName} channel/group name", + "audit_table.nameUpdated": "Updated the {channelName} channel name", "audit_table.oauthTokenFailed": "Failed to get an OAuth access token - {token}", "audit_table.revokedAll": "Revoked all current sessions for the team", "audit_table.sentEmail": "Sent an email to {email} to reset your password", @@ -1031,9 +1031,9 @@ "audit_table.updateGlobalNotifications": "Updated your global notification settings", "audit_table.updatePicture": "Updated your profile picture", "audit_table.updatedRol": "Updated user role(s) to ", - "audit_table.userAdded": "Added {username} to the {channelName} channel/group", + "audit_table.userAdded": "Added {username} to the {channelName} channel", "audit_table.userId": "User ID", - "audit_table.userRemoved": "Removed {username} to the {channelName} channel/group", + "audit_table.userRemoved": "Removed {username} to the {channelName} channel", "audit_table.verified": "Sucessfully verified your email address", "authorize.access": "Allow <strong>{appName}</strong> access?", "authorize.allow": "Allow", @@ -1056,32 +1056,29 @@ "change_url.longer": "URL must be two or more characters.", "change_url.noUnderscore": "URL can not contain two underscores in a row.", "change_url.startWithLetter": "URL must start with a letter or number.", + "change_url.urlLabel": "Channel URL", "channelHeader.addToFavorites": "Add to Favorites", "channelHeader.removeFromFavorites": "Remove from Favorites", "channel_flow.alreadyExist": "A channel with that URL already exists", "channel_flow.changeUrlDescription": "Some characters are not allowed in URLs and may be removed.", - "channel_flow.changeUrlTitle": "Change {term} URL", - "channel_flow.channel": "Channel", - "channel_flow.create": "Create {term}", - "channel_flow.group": "Group", + "channel_flow.changeUrlTitle": "Change Channel URL", + "channel_flow.create": "Create Channel", "channel_flow.handleTooShort": "Channel URL must be 2 or more lowercase alphanumeric characters", "channel_flow.invalidName": "Invalid Channel Name", - "channel_flow.set_url_title": "Set {term} URL", + "channel_flow.set_url_title": "Set Channel URL", "channel_header.addMembers": "Add Members", "channel_header.addToFavorites": "Add to Favorites", - "channel_header.channel": "Channel", "channel_header.channelHeader": "Edit Channel Header", - "channel_header.delete": "Delete {term}", + "channel_header.delete": "Delete Channel", "channel_header.flagged": "Flagged Posts", - "channel_header.group": "Group", - "channel_header.leave": "Leave {term}", + "channel_header.leave": "Leave Channel", "channel_header.manageMembers": "Manage Members", "channel_header.notificationPreferences": "Notification Preferences", "channel_header.recentMentions": "Recent Mentions", "channel_header.removeFromFavorites": "Remove from Favorites", - "channel_header.rename": "Rename {term}", - "channel_header.setHeader": "Edit {term} Header", - "channel_header.setPurpose": "Edit {term} Purpose", + "channel_header.rename": "Rename Channel", + "channel_header.setHeader": "Edit Channel Header", + "channel_header.setPurpose": "Edit Channel Purpose", "channel_header.viewInfo": "View Info", "channel_header.viewMembers": "View Members", "channel_header.webrtc.call": "Start Video Call", @@ -1116,21 +1113,19 @@ "channel_members_modal.addNew": " Add New Members", "channel_members_modal.members": " Members", "channel_modal.cancel": "Cancel", - "channel_modal.channel": "Channel", - "channel_modal.createNew": "Create New ", - "channel_modal.descriptionHelp": "Describe how this {term} should be used.", + "channel_modal.createNew": "Create New Channel", + "channel_modal.descriptionHelp": "Describe how this channel should be used.", "channel_modal.displayNameError": "Channel name must be 2 or more characters", "channel_modal.edit": "Edit", - "channel_modal.group": "Group", "channel_modal.header": "Header", "channel_modal.headerEx": "E.g.: \"[Link Title](http://example.com)\"", - "channel_modal.headerHelp": "Set text that will appear in the header of the {term} beside the {term} name. For example, include frequently used links by typing [Link Title](http://example.com).", - "channel_modal.modalTitle": "New ", + "channel_modal.headerHelp": "Set text that will appear in the header of the channel beside the channel name. For example, include frequently used links by typing [Link Title](http://example.com).", + "channel_modal.modalTitle": "New Channel", "channel_modal.name": "Name", "channel_modal.nameEx": "E.g.: \"Bugs\", \"Marketing\", \"客户支持\"", "channel_modal.optional": "(optional)", - "channel_modal.privateGroup1": "Create a new private group with restricted membership. ", - "channel_modal.privateGroup2": "Create a private group", + "channel_modal.privateGroup1": "Create a new private channel with restricted membership. ", + "channel_modal.privateGroup2": "Create a private channel", "channel_modal.publicChannel1": "Create a public channel", "channel_modal.publicChannel2": "Create a new public channel anyone can join. ", "channel_modal.purpose": "Purpose", @@ -1230,11 +1225,9 @@ "custom_emoji.search": "Search Custom Emoji", "default_channel.purpose": "Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.", "delete_channel.cancel": "Cancel", - "delete_channel.channel": "channel", "delete_channel.confirm": "Confirm DELETE Channel", "delete_channel.del": "Delete", - "delete_channel.group": "group", - "delete_channel.question": "This will delete the channel from the team and make its contents inaccessible for all users. Are you sure you wish to delete the {display_name} {term}?", + "delete_channel.question": "This will delete the channel from the team and make its contents inaccessible for all users. Are you sure you wish to delete the {display_name} channel?", "delete_post.cancel": "Cancel", "delete_post.comment": "Comment", "delete_post.confirm": "Confirm {term} Delete", @@ -1248,11 +1241,9 @@ "edit_channel_header_modal.save": "Save", "edit_channel_header_modal.title": "Edit Header for {channel}", "edit_channel_header_modal.title_dm": "Edit Header", - "edit_channel_purpose_modal.body": "Describe how this {type} should be used. This text appears in the channel list in the \"More...\" menu and helps others decide whether to join.", + "edit_channel_purpose_modal.body": "Describe how this channel should be used. This text appears in the channel list in the \"More...\" menu and helps others decide whether to join.", "edit_channel_purpose_modal.cancel": "Cancel", - "edit_channel_purpose_modal.channel": "Channel", "edit_channel_purpose_modal.error": "This channel purpose is too long, please enter a shorter one", - "edit_channel_purpose_modal.group": "Group", "edit_channel_purpose_modal.save": "Save", "edit_channel_purpose_modal.title1": "Edit Purpose", "edit_channel_purpose_modal.title2": "Edit Purpose for ", @@ -1544,12 +1535,12 @@ "intro_messages.channel": "channel", "intro_messages.creator": "This is the start of the {name} {type}, created by {creator} on {date}.", "intro_messages.default": "<h4 class='channel-intro__title'>Beginning of {display_name}</h4><p class='channel-intro__content'><strong>Welcome to {display_name}!</strong><br/><br/>Post messages here that you want everyone to see. Everyone automatically becomes a permanent member of this channel when they join the team.</p>", - "intro_messages.group": "private group", + "intro_messages.group": "private channel", "intro_messages.invite": "Invite others to this {type}", "intro_messages.inviteOthers": "Invite others to this team", "intro_messages.noCreator": "This is the start of the {name} {type}, created on {date}.", "intro_messages.offTopic": "<h4 class=\"channel-intro__title\">Beginning of {display_name}</h4><p class=\"channel-intro__content\">This is the start of {display_name}, a channel for non-work-related conversations.<br/></p>", - "intro_messages.onlyInvited": " Only invited members can see this private group.", + "intro_messages.onlyInvited": " Only invited members can see this private channel.", "intro_messages.purpose": " This {type}'s purpose is: {purpose}.", "intro_messages.setHeader": "Set a Header", "intro_messages.teammate": "This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.", @@ -1575,7 +1566,7 @@ "ldap_signup.length_error": "Name must be 3 or more characters up to a maximum of 15", "ldap_signup.teamName": "Enter name of new team", "ldap_signup.team_error": "Please enter a team name", - "leave_team_modal.desc": "You will be removed from all public channels and private groups. If the team is private you will not be able to rejoin the team. Are you sure?", + "leave_team_modal.desc": "You will be removed from all public and private channels. If the team is private you will not be able to rejoin the team. Are you sure?", "leave_team_modal.no": "No", "leave_team_modal.title": "Leave the team?", "leave_team_modal.yes": "Yes", @@ -1727,8 +1718,8 @@ "more_channels.title": "More Channels", "more_direct_channels.close": "Close", "more_direct_channels.message": "Message", - "more_direct_channels.new_convo_note": "This will start a new conversation. If you’re adding a lot of people, consider creating a private group instead.", - "more_direct_channels.new_convo_note.full": "You’ve reached the maximum number of people for this conversation. Consider creating a private group instead.", + "more_direct_channels.new_convo_note": "This will start a new conversation. If you’re adding a lot of people, consider creating a private channel instead.", + "more_direct_channels.new_convo_note.full": "You’ve reached the maximum number of people for this conversation. Consider creating a private channel instead.", "more_direct_channels.title": "Direct Messages", "msg_typing.areTyping": "{users} and {last} are typing...", "msg_typing.isTyping": "{user} is typing...", @@ -1895,18 +1886,18 @@ "setting_upload.noFile": "No file selected.", "setting_upload.select": "Select file", "sidebar.channels": "Channels", - "sidebar.createChannel": "Create new channel", - "sidebar.createGroup": "Create new group", + "sidebar.createChannel": "Create new public channel", + "sidebar.createGroup": "Create new private channel", "sidebar.direct": "Direct Messages", "sidebar.favorite": "Favorites", "sidebar.more": "More", "sidebar.moreElips": "More...", "sidebar.otherMembers": "Outside this team", - "sidebar.pg": "Private Groups", + "sidebar.pg": "Private Channels", "sidebar.removeList": "Remove from list", - "sidebar.tutorialScreen1": "<h4>Channels</h4><p><strong>Channels</strong> organize conversations across different topics. They’re open to everyone on your team. To send private communications use <strong>Direct Messages</strong> for a single person or <strong>Private Groups</strong> for multiple people.</p>", + "sidebar.tutorialScreen1": "<h4>Channels</h4><p><strong>Channels</strong> organize conversations across different topics. They’re open to everyone on your team. To send private communications use <strong>Direct Messages</strong> for a single person or <strong>Private Channel</strong> for multiple people.</p>", "sidebar.tutorialScreen2": "<h4>\"{townsquare}\" and \"{offtopic}\" channels</h4><p>Here are two public channels to start:</p><p><strong>{townsquare}</strong> is a place for team-wide communication. Everyone in your team is a member of this channel.</p><p><strong>{offtopic}</strong> is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.</p>", - "sidebar.tutorialScreen3": "<h4>Creating and Joining Channels</h4><p>Click <strong>\"More...\"</strong> to create a new channel or join an existing one.</p><p>You can also create a new channel or private group by clicking the <strong>\"+\" symbol</strong> next to the channel or private group header.</p>", + "sidebar.tutorialScreen3": "<h4>Creating and Joining Channels</h4><p>Click <strong>\"More...\"</strong> to create a new channel or join an existing one.</p><p>You can also create a new channel by clicking the <strong>\"+\" symbol</strong> next to the public or private channel header.</p>", "sidebar.unreadAbove": "Unread post(s) above", "sidebar.unreadBelow": "Unread post(s) below", "sidebar_header.tutorial": "<h4>Main Menu</h4><p>The <strong>Main Menu</strong> is where you can <strong>Invite New Members</strong>, access your <strong>Account Settings</strong> and set your <strong>Theme Color</strong>.</p><p>Team administrators can also access their <strong>Team Settings</strong> from this menu.</p><p>System administrators will find a <strong>System Console</strong> option to administrate the entire system.</p>", @@ -1982,7 +1973,7 @@ "suggestion.mention.morechannels": "Other Channels", "suggestion.mention.nonmembers": "Not in Channel", "suggestion.mention.special": "Special Mentions", - "suggestion.search.private": "Private Groups", + "suggestion.search.private": "Private Channels", "suggestion.search.public": "Public Channels", "system_users_list.count": "{count, number} {count, plural, one {user} other {users}}", "system_users_list.countPage": "{startCount, number} - {endCount, number} {count, plural, one {user} other {users}} of {total} total", @@ -2041,7 +2032,7 @@ "tutorial_intro.mobileAppsLinkText": "PC, Mac, iOS and Android", "tutorial_intro.next": "Next", "tutorial_intro.screenOne": "<h3>Welcome to:</h3><h1>Mattermost</h1><p>Your team communication all in one place, instantly searchable and available anywhere.</p><p>Keep your team connected to help them achieve what matters most.</p>", - "tutorial_intro.screenTwo": "<h3>How Mattermost works:</h3><p>Communication happens in public discussion channels, private groups and direct messages.</p><p>Everything is archived and searchable from any web-enabled desktop, laptop or phone.</p>", + "tutorial_intro.screenTwo": "<h3>How Mattermost works:</h3><p>Communication happens in public discussion channels, private channels and direct messages.</p><p>Everything is archived and searchable from any web-enabled desktop, laptop or phone.</p>", "tutorial_intro.skip": "Skip tutorial", "tutorial_intro.support": "Need anything, just email us at ", "tutorial_intro.teamInvite": "Invite teammates", diff --git a/webapp/utils/channel_intro_messages.jsx b/webapp/utils/channel_intro_messages.jsx index 390ce6d28..4871a8d69 100644 --- a/webapp/utils/channel_intro_messages.jsx +++ b/webapp/utils/channel_intro_messages.jsx @@ -217,13 +217,13 @@ export function createStandardIntroMessage(channel, centeredIntro) { uiType = ( <FormattedMessage id='intro_messages.group' - defaultMessage='private group' + defaultMessage='private channel' /> ); memberMessage = ( <FormattedMessage id='intro_messages.onlyInvited' - defaultMessage=' Only invited members can see this private group.' + defaultMessage=' Only invited members can see this private channel.' /> ); } else { |