diff --git a/Makefile b/Makefile index 6314af611..1d3489d3a 100644 --- a/Makefile +++ b/Makefile @@ -139,11 +139,19 @@ run-ios: | check-device-ios pre-run ## Runs the app on an iOS simulator @if [ $(shell ps -e | grep -i "cli.js start" | grep -civ grep) -eq 0 ]; then \ echo Starting React Native packager server; \ node ./node_modules/react-native/local-cli/cli.js start & echo Running iOS app in development; \ - react-native run-ios --simulator="${SIMULATOR}"; \ + if [ ! -z "${SIMULATOR}" ]; then \ + react-native run-ios --simulator="${SIMULATOR}"; \ + else \ + react-native run-ios; \ + fi; \ wait; \ else \ echo Running iOS app in development; \ - react-native run-ios --simulator="${SIMULATOR}"; \ + if [ ! -z "${SIMULATOR}" ]; then \ + react-native run-ios --simulator="${SIMULATOR}"; \ + else \ + react-native run-ios; \ + fi; \ fi run-android: | check-device-android pre-run prepare-android-build ## Runs the app on an Android emulator or dev device diff --git a/android/app/build.gradle b/android/app/build.gradle index a7b11e321..6845c84ab 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -111,7 +111,7 @@ android { applicationId "com.mattermost.rnbeta" minSdkVersion 21 targetSdkVersion 23 - versionCode 94 + versionCode 97 versionName "1.8.0" multiDexEnabled true ndk { diff --git a/app/actions/views/channel.js b/app/actions/views/channel.js index b6adc19c3..20238c9ee 100644 --- a/app/actions/views/channel.js +++ b/app/actions/views/channel.js @@ -400,11 +400,23 @@ export function refreshChannelWithRetry(channelId) { export function leaveChannel(channel, reset = false) { return async (dispatch, getState) => { - const {currentTeamId} = getState().entities.teams; - await serviceLeaveChannel(channel.id)(dispatch, getState); - if (channel.isCurrent || reset) { - await selectInitialChannel(currentTeamId)(dispatch, getState); + const state = getState(); + const {currentChannelId} = state.entities.channels; + const {currentTeamId} = state.entities.teams; + + dispatch({ + type: ViewTypes.REMOVE_LAST_CHANNEL_FOR_TEAM, + data: { + teamId: currentTeamId, + channelId: channel.id, + }, + }); + + if (channel.id === currentChannelId || reset) { + await dispatch(selectInitialChannel(currentTeamId)); } + + await serviceLeaveChannel(channel.id)(dispatch, getState); }; } diff --git a/app/components/at_mention/at_mention.js b/app/components/at_mention/at_mention.js index 5665e05df..14dbb8a82 100644 --- a/app/components/at_mention/at_mention.js +++ b/app/components/at_mention/at_mention.js @@ -6,6 +6,8 @@ import PropTypes from 'prop-types'; import {Clipboard, Platform, Text} from 'react-native'; import {intlShape} from 'react-intl'; +import {displayUsername} from 'mattermost-redux/utils/user_utils'; + import CustomPropTypes from 'app/constants/custom_prop_types'; import mattermostManaged from 'app/mattermost_managed'; @@ -18,30 +20,29 @@ export default class AtMention extends React.PureComponent { onLongPress: PropTypes.func.isRequired, onPostPress: PropTypes.func, textStyle: CustomPropTypes.Style, + teammateNameDisplay: PropTypes.string, theme: PropTypes.object.isRequired, usersByUsername: PropTypes.object.isRequired, }; static contextTypes = { intl: intlShape, - } + }; constructor(props) { super(props); - const userDetails = this.getUserDetailsFromMentionName(props); + const user = this.getUserDetailsFromMentionName(props); this.state = { - username: userDetails.username, - id: userDetails.id, + user, }; } componentWillReceiveProps(nextProps) { if (nextProps.mentionName !== this.props.mentionName || nextProps.usersByUsername !== this.props.usersByUsername) { - const userDetails = this.getUserDetailsFromMentionName(nextProps); + const user = this.getUserDetailsFromMentionName(nextProps); this.setState({ - username: userDetails.username, - id: userDetails.id, + user, }); } } @@ -55,7 +56,7 @@ export default class AtMention extends React.PureComponent { animated: true, backButtonTitle: '', passProps: { - userId: this.state.id, + userId: this.state.user.id, }, navigatorStyle: { navBarTextColor: theme.sidebarHeaderTextColor, @@ -77,11 +78,7 @@ export default class AtMention extends React.PureComponent { while (mentionName.length > 0) { if (props.usersByUsername.hasOwnProperty(mentionName)) { - const user = props.usersByUsername[mentionName]; - return { - username: user.username, - id: user.id, - }; + return props.usersByUsername[mentionName]; } // Repeatedly trim off trailing punctuation in case this is at the end of a sentence @@ -114,22 +111,22 @@ export default class AtMention extends React.PureComponent { } this.props.onLongPress(action); - } + }; handleCopyMention = () => { const {username} = this.state; Clipboard.setString(`@${username}`); - } + }; render() { - const {isSearchResult, mentionName, mentionStyle, onPostPress, textStyle} = this.props; - const username = this.state.username; + const {isSearchResult, mentionName, mentionStyle, onPostPress, teammateNameDisplay, textStyle} = this.props; + const {user} = this.state; - if (!username) { + if (!user.username) { return {'@' + mentionName}; } - const suffix = this.props.mentionName.substring(username.length); + const suffix = this.props.mentionName.substring(user.username.length); return ( - {'@' + username} + {'@' + displayUsername(user, teammateNameDisplay)} {suffix} diff --git a/app/components/at_mention/index.js b/app/components/at_mention/index.js index ae0a01837..888397f3b 100644 --- a/app/components/at_mention/index.js +++ b/app/components/at_mention/index.js @@ -5,7 +5,7 @@ import {connect} from 'react-redux'; import {getUsersByUsername} from 'mattermost-redux/selectors/entities/users'; -import {getTheme} from 'mattermost-redux/selectors/entities/preferences'; +import {getTeammateNameDisplaySetting, getTheme} from 'mattermost-redux/selectors/entities/preferences'; import AtMention from './at_mention'; @@ -13,6 +13,7 @@ function mapStateToProps(state) { return { theme: getTheme(state), usersByUsername: getUsersByUsername(state), + teammateNameDisplay: getTeammateNameDisplaySetting(state), }; } diff --git a/app/components/autocomplete/emoji_suggestion/emoji_suggestion.js b/app/components/autocomplete/emoji_suggestion/emoji_suggestion.js index 1b08ac26c..d118530ad 100644 --- a/app/components/autocomplete/emoji_suggestion/emoji_suggestion.js +++ b/app/components/autocomplete/emoji_suggestion/emoji_suggestion.js @@ -82,9 +82,9 @@ export default class EmojiSuggestion extends Component { return; } - if (this.props.emojis !== nextProps.emojis) { + if (this.matchTerm.length) { this.handleFuzzySearch(this.matchTerm, nextProps); - } else if (!this.matchTerm.length) { + } else { const initialEmojis = [...nextProps.emojis]; initialEmojis.splice(0, 300); const data = initialEmojis.sort(); diff --git a/app/components/channel_drawer/channels_list/channel_item/channel_item.js b/app/components/channel_drawer/channels_list/channel_item/channel_item.js index 3b2a979b7..21b8ba576 100644 --- a/app/components/channel_drawer/channels_list/channel_item/channel_item.js +++ b/app/components/channel_drawer/channels_list/channel_item/channel_item.js @@ -208,7 +208,7 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { fontWeight: '600', paddingRight: 40, height: '100%', - width: '100%', + flex: 1, textAlignVertical: 'center', lineHeight: 44, }, diff --git a/app/components/file_attachment_list/file_attachment_image.js b/app/components/file_attachment_list/file_attachment_image.js index eeeaa1de2..833da5c80 100644 --- a/app/components/file_attachment_list/file_attachment_image.js +++ b/app/components/file_attachment_list/file_attachment_image.js @@ -16,6 +16,8 @@ import {isGif} from 'app/utils/file'; import {emptyFunction} from 'app/utils/general'; import ImageCacheManager from 'app/utils/image_cache_manager'; +import thumb from 'assets/images/thumb.png'; + const IMAGE_SIZE = { Fullsize: 'fullsize', Preview: 'preview', @@ -135,6 +137,8 @@ export default class FileAttachmentImage extends PureComponent { { const {height} = event.nativeEvent.layout; - this.props.onLayoutCalled(this.props.index, height); + const {shouldCallOnLayout} = this.props; + if (shouldCallOnLayout) { + this.props.onLayoutCalled(this.props.index, height); + } }; render() { - const {index, onLayoutCalled, shouldCallOnLayout, ...otherProps} = this.props; //eslint-disable-line no-unused-vars - - if (shouldCallOnLayout) { - return ( - - - - ); - } - - return ; + return ( + + + + ); } }; } diff --git a/app/components/profile_picture/profile_picture.js b/app/components/profile_picture/profile_picture.js index 3c6f5adb5..c58da5435 100644 --- a/app/components/profile_picture/profile_picture.js +++ b/app/components/profile_picture/profile_picture.js @@ -22,7 +22,6 @@ const STATUS_BUFFER = Platform.select({ export default class ProfilePicture extends PureComponent { static propTypes = { size: PropTypes.number, - statusBorderWidth: PropTypes.number, statusSize: PropTypes.number, user: PropTypes.object, showStatus: PropTypes.bool, @@ -38,7 +37,6 @@ export default class ProfilePicture extends PureComponent { static defaultProps = { showStatus: true, size: 128, - statusBorderWidth: 2, statusSize: 14, edit: false, }; @@ -49,6 +47,7 @@ export default class ProfilePicture extends PureComponent { componentWillMount() { const {edit, imageUri, user} = this.props; + this.mounted = true; if (edit && imageUri) { this.setImageURL(imageUri); @@ -64,19 +63,37 @@ export default class ProfilePicture extends PureComponent { } componentWillUpdate(nextProps) { - if (Boolean(nextProps.user) !== Boolean(this.props.user) || nextProps.user.id !== this.props.user.id) { + if ( + Boolean(nextProps.user) !== Boolean(this.props.user) || + nextProps.user.id !== this.props.user.id || + nextProps.user.last_picture_update !== this.props.user.last_picture_update + ) { this.setState({pictureUrl: null}); const nextUser = nextProps.user; + if (this.mounted) { + this.setState({pictureUrl: null}); + } + if (nextUser) { ImageCacheManager.cache('', Client4.getProfilePictureUrl(nextUser.id, nextUser.last_picture_update), this.setImageURL); } } + + if (nextProps.edit && nextProps.imageUri !== this.props.imageUri) { + this.setImageURL(nextProps.imageUri); + } + } + + componentWillUnmount() { + this.mounted = false; } setImageURL = (pictureUrl) => { - this.setState({pictureUrl}); + if (this.mounted) { + this.setState({pictureUrl}); + } }; render() { @@ -112,7 +129,7 @@ export default class ProfilePicture extends PureComponent { let source = null; if (pictureUrl) { let prefix = ''; - if (Platform.OS === 'android') { + if (Platform.OS === 'android' && !pictureUrl.includes('content://')) { prefix = 'file://'; } diff --git a/app/components/progressive_image/index.js b/app/components/progressive_image/index.js new file mode 100644 index 000000000..a4d517348 --- /dev/null +++ b/app/components/progressive_image/index.js @@ -0,0 +1,16 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import {connect} from 'react-redux'; + +import {getTheme} from 'mattermost-redux/selectors/entities/preferences'; + +import ProgressiveImage from './progressive_image'; + +function mapStateToProps(state) { + return { + theme: getTheme(state), + }; +} + +export default connect(mapStateToProps)(ProgressiveImage); diff --git a/app/components/progressive_image.js b/app/components/progressive_image/progressive_image.js similarity index 79% rename from app/components/progressive_image.js rename to app/components/progressive_image/progressive_image.js index aa6e1977c..4b4328c8d 100644 --- a/app/components/progressive_image.js +++ b/app/components/progressive_image/progressive_image.js @@ -7,6 +7,7 @@ import {Animated, Image, ImageBackground, Platform, View, StyleSheet} from 'reac import CustomPropTypes from 'app/constants/custom_prop_types'; import ImageCacheManager from 'app/utils/image_cache_manager'; +import {changeOpacity} from 'app/utils/theme'; const AnimatedImageBackground = Animated.createAnimatedComponent(ImageBackground); @@ -18,7 +19,9 @@ export default class ProgressiveImage extends PureComponent { filename: PropTypes.string, imageUri: PropTypes.string, style: CustomPropTypes.Style, + theme: PropTypes.object.isRequired, thumbnailUri: PropTypes.string, + tintDefaultSource: PropTypes.bool, }; constructor(props) { @@ -34,7 +37,7 @@ export default class ProgressiveImage extends PureComponent { } componentWillMount() { - const intensity = new Animated.Value(100); + const intensity = new Animated.Value(80); this.setState({intensity}); this.load(this.props); } @@ -102,7 +105,7 @@ export default class ProgressiveImage extends PureComponent { }; render() { - const {style, defaultSource, isBackgroundImage, ...otherProps} = this.props; + const {style, defaultSource, isBackgroundImage, theme, tintDefaultSource, ...otherProps} = this.props; const {style: computedStyle} = this; const {uri, intensity, thumb} = this.state; const hasDefaultSource = Boolean(defaultSource); @@ -124,9 +127,22 @@ export default class ProgressiveImage extends PureComponent { ImageComponent = Animated.Image; } - return ( - - {(hasDefaultSource && !hasPreview && !hasURI) && + let defaultImage; + if (hasDefaultSource && tintDefaultSource) { + defaultImage = ( + + + {this.props.children} + + + ); + } else { + defaultImage = ( {this.props.children} - } + ); + } + + return ( + + {(hasDefaultSource && !hasPreview && !hasURI) && defaultImage} {hasPreview && !isImageReady && } {hasPreview && - + } ); } } + +const styles = StyleSheet.create({ + defaultImageContainer: { + flex: 1, + position: 'absolute', + height: 80, + width: 80, + alignItems: 'center', + justifyContent: 'center', + }, +}); diff --git a/app/constants/view.js b/app/constants/view.js index 471e823b1..5f53b7a36 100644 --- a/app/constants/view.js +++ b/app/constants/view.js @@ -44,6 +44,7 @@ const ViewTypes = keyMirror({ SET_CHANNEL_DISPLAY_NAME: null, SET_LAST_CHANNEL_FOR_TEAM: null, + REMOVE_LAST_CHANNEL_FOR_TEAM: null, GITLAB: null, SAML: null, diff --git a/app/reducers/views/team.js b/app/reducers/views/team.js index 47f0ff97a..1ddfdf415 100644 --- a/app/reducers/views/team.js +++ b/app/reducers/views/team.js @@ -44,6 +44,29 @@ function lastChannelForTeam(state = {}, action) { [action.teamId]: channelIds, }; } + case ViewTypes.REMOVE_LAST_CHANNEL_FOR_TEAM: { + const {data} = action; + const team = state[data.teamId]; + + if (!data.channelId) { + return state; + } + + if (team) { + const channelIds = [...team]; + const index = channelIds.indexOf(data.channelId); + if (index !== -1) { + channelIds.splice(index, 1); + } + + return { + ...state, + [data.teamId]: channelIds, + }; + } + + return state; + } default: return state; } diff --git a/app/screens/edit_profile/edit_profile.js b/app/screens/edit_profile/edit_profile.js index 0d99f4f45..5a494b586 100644 --- a/app/screens/edit_profile/edit_profile.js +++ b/app/screens/edit_profile/edit_profile.js @@ -11,7 +11,7 @@ import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view'; import Loading from 'app/components/loading'; import ErrorText from 'app/components/error_text'; import StatusBar from 'app/components/status_bar/index'; -import ProfilePicture from 'app/components/profile_picture/index'; +import ProfilePicture from 'app/components/profile_picture'; import AttachmentButton from 'app/components/attachment_button'; import {emptyFunction} from 'app/utils/general'; import {preventDoubleTap} from 'app/utils/tap'; diff --git a/app/selectors/autocomplete.js b/app/selectors/autocomplete.js index 98b3e3508..2b7fb5ac2 100644 --- a/app/selectors/autocomplete.js +++ b/app/selectors/autocomplete.js @@ -193,7 +193,7 @@ export const filterPublicChannels = createSelector( ); } else { channels = myChannels.filter((c) => { - return (c.type === General.OPEN_CHANNEL || c.type === General.PRIVATE_CHANNEL); + return (c.type === General.OPEN_CHANNEL); }).concat(otherChannels); } diff --git a/assets/base/i18n/de.json b/assets/base/i18n/de.json index 12df818b8..2ef199349 100644 --- a/assets/base/i18n/de.json +++ b/assets/base/i18n/de.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Erlaube Login mit Benutzernamen: ", "admin.email.connectionSecurityTest": "Verbindung testen", "admin.email.easHelp": "Erfahren Sie mehr über das Erstellen und Ausrollen Ihrer eigenen mobilen App aus einem Enterprise-App-Store.", - "admin.email.emailFail": "Verbindung nicht erfolgreich: {error}", "admin.email.emailSuccess": "Es wurden keine Fehler beim Sendern der E-Mail gemeldet. Bitte überprüfen Sie Ihr Postfach, um sicherzugehen.", "admin.email.enableEmailBatching.clusterEnabled": "E-Mail-Stapelverarbeitung kann nicht aktiviert werden, wenn High-Availability-Modus aktiviert ist.", "admin.email.enableEmailBatching.siteURL": "E-Mail-Stapelverarbeitung kann nicht aktiviert werden, solange SiteURL nicht in Konfiguration > SiteURL konfiguriert ist.", @@ -559,7 +558,7 @@ "admin.image.proxyOptions": "Bild-Proxy-Optionen:", "admin.image.proxyOptionsDescription": "Zusätzliche Optionen wie den URL-Signierungsschlüssel. Beziehen Sie sich auf die Dokumentation ihres Image-Proxys, um mehr über die unterstützten Funktionen zu erfahren.", "admin.image.proxyType": "Bild-Proxy-Typ:", - "admin.image.proxyTypeDescription": "Konfigurieren Sie einen Bild-Proxy, um alle Markdown-Bilder durch einen Proxy zu laden. Der Bild-Proxy verhindert, dass Benutzer unsichere Bildanfragen durchführen, stellt Caching für verbesserte Leistung zur Verfügung und automatisiert Bildanpassungen wie z.B. Größenänderungen. Sehen Sie sich die Dokumentationan, um mehr zu erfahren.", + "admin.image.proxyTypeDescription": "Konfigurieren Sie einen Bild-Proxy, um alle Markdown-Bilder durch einen Proxy zu laden. Der Bild-Proxy verhindert, dass Benutzer unsichere Bildanfragen durchführen, stellt Caching für verbesserte Leistung zur Verfügung und automatisiert Bildanpassungen wie z.B. Größenänderungen. Sehen Sie sich die Dokumentation an, um mehr zu erfahren.", "admin.image.proxyTypeNone": "Keiner", "admin.image.proxyURL": "Bild-Proxy-URL:", "admin.image.proxyURLDescription": "URL ihres Bild-Proxy-Servers.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Replica DB Verbindungen", "analytics.system.totalSessions": "Sitzungen Gesamt", "analytics.system.totalTeams": "Teams Gesamt", - "analytics.system.totalUsers": "Benutzer Gesamt", + "analytics.system.totalUsers": "Monatliche aktive Benutzer", "analytics.system.totalWebsockets": "Websocket Verbindungen", "analytics.team.activeUsers": "Aktive Benutzer mit Beiträgen", "analytics.team.newlyCreated": "Neu erstellte Benutzer", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Zuletzt aktive Benutzer", "analytics.team.title": "Team-Statistiken für {team}", "analytics.team.totalPosts": "Beiträge Gesamt", - "analytics.team.totalUsers": "Benutzer Gesamt", + "analytics.team.totalUsers": "Monatliche aktive Benutzer", "api.channel.add_member.added": "{addedUsername} durch {username} zum Kanal hinzugefügt.", "api.channel.delete_channel.archived": "{username} hat den Kanal archiviert.", "api.channel.join_channel.post_and_forget": "{username} ist dem Kanal beigetreten.", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Teamauswahl", "mobile.share_extension.cancel": "Abbrechen", "mobile.share_extension.channel": "Kanal", + "mobile.share_extension.error_close": "Schließen", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Senden", "mobile.share_extension.team": "Team", "mobile.suggestion.members": "Mitglieder", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Mitglieder suchen und hinzufügen", "navbar.addMembers": "Mitglieder hinzufügen", "navbar.click": "Klicken Sie hier", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Kanal löschen...", "navbar.leave": "Kanal verlassen", "navbar.manageMembers": "Mitglieder verwalten", - "navbar.noHeader": "Bisher keine Kanalüberschrift vorhanden.{newline}{link} um eine einzutragen.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Benachrichtigungseinstellungen", "navbar.rename": "Kanal umbenennen...", "navbar.setHeader": "Kanalüberschrift festlegen...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Fehler beim Import: ", "team_import_tab.import": "Importieren", "team_import_tab.importHelpDocsLink": "Dokumentation", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack erweiterter Exporter", "team_import_tab.importHelpLine1": "Slack-Import zu Mattermost unterstützt das Importieren von Nachrichten in den öffentlichen Kanälen Ihres Slack-Teams.", "team_import_tab.importHelpLine2": "Um ein Slack Team zu importieren, gehen Sie zu {exportInstructions}. Schauen Sie in den {uploadDocsLink} um mehr darüber zu erfahren.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Sende Nachrichten mit Strg+Enter", "user.settings.advance.slashCmd_autocmp": "Erlaube externe Anwendung Slash-Befehl-Autovervollständigung anzubieten", "user.settings.advance.title": "Erweiterte Einstellungen", - "user.settings.advance.webrtc_preview": "Die Möglichkeit aktivieren, WebRTC-Anrufe zu tätigen und zu empfangen", "user.settings.custom_theme.awayIndicator": "Abwesend-Anzeige", "user.settings.custom_theme.buttonBg": "Button Hintergrund", "user.settings.custom_theme.buttonColor": "Button Text", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Aktivieren", "user.settings.tokens.cancel": "Abbrechen", "user.settings.tokens.clickToEdit": "Klicken Sie 'Bearbeiten', um ihre persönlichen Zugriffs-Token zu verwalten", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Ja, erstellen", "user.settings.tokens.confirmCreateMessage": "Sie generieren einen persönlichen Zugriffs-Token mit Systemadministrator-Berechtigungen. Sind Sie sicher, dass Sie dieses Token erstellen wollen?", "user.settings.tokens.confirmCreateTitle": "Persönlichen Systemadministrator-Zugriffs-Token erstellen", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Zugriffs-Token: ", "user.settings.tokens.tokenDesc": "Token-Beschreibung: ", "user.settings.tokens.tokenId": "Token-ID: ", + "user.settings.tokens.tokenLoading": "Lade...", "user.settings.tokens.userAccessTokensNone": "Keine Benutzer-Zugriffs-Token.", "user_list.notFound": "Keine Benutzer gefunden", "user_profile.account.editSettings": "Kontoeinstellungen bearbeiten", @@ -3086,6 +3092,7 @@ "view_image.loading": "Laden ", "view_image_popover.download": "Herunterladen", "view_image_popover.file": "Datei {count, number} von {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Öffentlichen Link erhalten", "web.footer.about": "Über", "web.footer.help": "Hilfe", diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 1cafbe0f6..92c1fba3f 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -92,7 +92,7 @@ "add_emoji.save": "Save", "add_incoming_webhook.cancel": "Cancel", "add_incoming_webhook.channel": "Channel", - "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.channel.help": "The default 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.", @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Enable sign-in with username: ", "admin.email.connectionSecurityTest": "Test Connection", "admin.email.easHelp": "Learn more about compiling and deploying your own mobile apps from an Enterprise App Store.", - "admin.email.emailFail": "Connection unsuccessful: {error}", "admin.email.emailSuccess": "No errors were reported while sending an email. Please check your inbox to make sure.", "admin.email.enableEmailBatching.clusterEnabled": "Email batching cannot be enabled when High Availability mode is enabled.", "admin.email.enableEmailBatching.siteURL": "Email batching cannot be enabled unless the SiteURL is configured in Configuration > SiteURL.", @@ -450,7 +449,7 @@ "admin.files.storage": "Storage", "admin.general.configuration": "Configuration", "admin.general.localization": "Localization", - "admin.general.localization.availableLocalesDescription": "Set which languages are available for users in Account Settings (leave this field blank to have all supported languages available). If you’re manually adding new languages, the Default Client Language must be added before saving this setting.

Would like to help with translations? Join the Mattermost Translation Server to contribute.", + "admin.general.localization.availableLocalesDescription": "Set which languages are available for users in Account Settings (leave this field blank to have all supported languages available). If you're manually adding new languages, the Default Client Language must be added before saving this setting.

Would like to help with translations? Join the Mattermost Translation Server to contribute.", "admin.general.localization.availableLocalesNoResults": "No results found", "admin.general.localization.availableLocalesNotPresent": "The default client language must be included in the available list", "admin.general.localization.availableLocalesTitle": "Available Languages:", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "E.g.: \"mail\" or \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Email Attribute:", "admin.ldap.enableDesc": "When true, Mattermost allows login using AD/LDAP", - "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from SAML during user login.", + "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.", "admin.ldap.enableSyncTitle": "Enable Synchronization with AD/LDAP:", "admin.ldap.enableTitle": "Enable sign-in with AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Optional) The attribute in the AD/LDAP server that will be used to populate the first name of users in Mattermost. When set, users will not be able to edit their first name, since it is synchronized with the LDAP server. When left blank, users can set their own first name in Account Settings.", @@ -640,7 +639,7 @@ "admin.ldap.skipCertificateVerification": "Skip Certificate Verification:", "admin.ldap.skipCertificateVerificationDesc": "Skips the certificate verification step for TLS or STARTTLS connections. Not recommended for production environments where TLS is required. For testing only.", "admin.ldap.syncFailure": "Sync Failure: {error}", - "admin.ldap.syncIntervalHelpText": "AD/LDAP Synchronization updates Mattermost user information to reflect updates on the AD/LDAP server. For example, when a user’s name changes on the AD/LDAP server, the change updates in Mattermost when synchronization is performed. Accounts removed from or disabled in the AD/LDAP server have their Mattermost accounts set to \"Inactive\" and have their account sessions revoked. Mattermost performs synchronization on the interval entered. For example, if 60 is entered, Mattermost synchronizes every 60 minutes.", + "admin.ldap.syncIntervalHelpText": "AD/LDAP Synchronization updates Mattermost user information to reflect updates on the AD/LDAP server. For example, when a user's name changes on the AD/LDAP server, the change updates in Mattermost when synchronization is performed. Accounts removed from or disabled in the AD/LDAP server have their Mattermost accounts set to \"Inactive\" and have their account sessions revoked. Mattermost performs synchronization on the interval entered. For example, if 60 is entered, Mattermost synchronizes every 60 minutes.", "admin.ldap.syncIntervalTitle": "Synchronization Interval (minutes):", "admin.ldap.syncNowHelpText": "Initiates an AD/LDAP synchronization immediately.", "admin.ldap.sync_button": "AD/LDAP Synchronize Now", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Replica DB Conns", "analytics.system.totalSessions": "Total Sessions", "analytics.system.totalTeams": "Total Teams", - "analytics.system.totalUsers": "Total Users", + "analytics.system.totalUsers": "Total Active Users", "analytics.system.totalWebsockets": "WebSocket Conns", "analytics.team.activeUsers": "Active Users With Posts", "analytics.team.newlyCreated": "Newly Created Users", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Recent Active Users", "analytics.team.title": "Team Statistics for {team}", "analytics.team.totalPosts": "Total Posts", - "analytics.team.totalUsers": "Total Users", + "analytics.team.totalUsers": "Total Active Users", "api.channel.add_member.added": "{addedUsername} added to the channel by {username}.", "api.channel.delete_channel.archived": "{username} archived the channel.", "api.channel.join_channel.post_and_forget": "{username} joined the channel.", @@ -1727,8 +1726,8 @@ "help.commands.custom2": "Custom slash commands are disabled by default and can be enabled by the System Admin in the **System Console** > **Integrations** > **Webhooks and Commands**. Learn about configuring custom slash commands on the [developer slash command documentation page](http://docs.mattermost.com/developer/slash-commands.html).", "help.commands.intro": "Slash commands perform operations in Mattermost by typing into the text input box. Enter a `/` followed by a command and some arguments to perform actions.\n\nBuilt-in slash commands come with all Mattermost installations and custom slash commands are configurable to interact with external applications. Learn about configuring custom slash commands on the [developer slash command documentation page](http://docs.mattermost.com/developer/slash-commands.html).", "help.commands.title": "# Executing Commands\n___", - "help.composing.deleting": "## Deleting a message\nDelete a message by clicking the **[...]** icon next to any message text that you’ve composed, then click **Delete**. System and Team Admins can delete any message on their system or team.", - "help.composing.editing": "## Editing a Message\nEdit a message by clicking the **[...]** icon next to any message text that you’ve composed, then click **Edit**. After making modifications to the message text, press **ENTER** to save the modifications. Message edits do not trigger new @mention notifications, desktop notifications or notification sounds.", + "help.composing.deleting": "## Deleting a message\nDelete a message by clicking the **[...]** icon next to any message text that you've composed, then click **Delete**. System and Team Admins can delete any message on their system or team.", + "help.composing.editing": "## Editing a Message\nEdit a message by clicking the **[...]** icon next to any message text that you've composed, then click **Edit**. After making modifications to the message text, press **ENTER** to save the modifications. Message edits do not trigger new @mention notifications, desktop notifications or notification sounds.", "help.composing.linking": "## Linking to a message\nThe **Permalink** feature creates a link to any message. Sharing this link with other users in the channel lets them view the linked message in the Message Archives. Users who are not a member of the channel where the message was posted cannot view the permalink. Get the permalink to any message by clicking the **[...]** icon next to the message text > **Permalink** > **Copy Link**.", "help.composing.posting": "## Posting a Message\nWrite a message by typing into the text input box, then press ENTER to send it. Use SHIFT+ENTER to create a new line without sending a message. To send messages by pressing CTRL+ENTER go to **Main Menu > Account Settings > Send messages on CTRL+ENTER**.", "help.composing.posts": "#### Posts\nPosts can be considered parent messages. They are the messages that often start a thread of replies. Posts are composed and sent from the text input box at the bottom of the center pane.", @@ -1743,7 +1742,7 @@ "help.formatting.emojis": "## Emojis\n\nOpen the emoji autocomplete by typing `:`. A full list of emojis can be found [here](http://www.emoji-cheat-sheet.com/). It is also possible to create your own [Custom Emoji](http://docs.mattermost.com/help/settings/custom-emoji.html) if the emoji you want to use doesn't exist.", "help.formatting.example": "Example:", "help.formatting.githubTheme": "**GitHub Theme**", - "help.formatting.headings": "## Headings\n\nMake a heading by typing # and a space before your title. For smaller headings, use more #’s.", + "help.formatting.headings": "## Headings\n\nMake a heading by typing # and a space before your title. For smaller headings, use more #'s.", "help.formatting.headings2": "Alternatively, you can underline the text using `===` or `---` to create headings.", "help.formatting.headings2Example": "Large Heading\n-------------", "help.formatting.headingsExample": "## Large Heading\n### Smaller Heading\n#### Even Smaller Heading", @@ -1770,7 +1769,7 @@ "help.formatting.syntax": "### Syntax Highlighting\n\nTo add syntax highlighting, type the language to be highlighted after the ``` at the beginning of the code block. Mattermost also offers four different code themes (GitHub, Solarized Dark, Solarized Light, Monokai) that can be changed in **Account Settings** > **Display** > **Theme** > **Custom Theme** > **Center Channel Styles**", "help.formatting.syntaxEx": " package main\n import \"fmt\"\n func main() {\n fmt.Println(\"Hello, 世界\")\n }", "help.formatting.tableExample": "| Left-Aligned | Center Aligned | Right Aligned |\n| :------------ |:---------------:| -----:|\n| Left column 1 | this text | $100 |\n| Left column 2 | is | $10 |\n| Left column 3 | centered | $1 |", - "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don’t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", + "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don't need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", "help.formatting.title": "# Formatting Text\n_____", "help.learnMore": "Learn more about:", "help.link.attaching": "Attaching Files", @@ -2270,8 +2269,8 @@ "mobile.settings.team_selection": "Team Selection", "mobile.share_extension.cancel": "Cancel", "mobile.share_extension.channel": "Channel", - "mobile.share_extension.error_message": "An error has occurred while using the share extension.", "mobile.share_extension.error_close": "Close", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Send", "mobile.share_extension.team": "Team", @@ -2303,8 +2302,8 @@ "more_direct_channels.directchannel.deactivated": "{displayname} - Deactivated", "more_direct_channels.directchannel.you": "{displayname} (you)", "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 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.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...", @@ -2317,10 +2316,11 @@ "multiselect.placeholder": "Search and add members", "navbar.addMembers": "Add Members", "navbar.click": "Click here", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Delete Channel...", "navbar.leave": "Leave Channel", "navbar.manageMembers": "Manage Members", - "navbar.noHeader": "No channel header yet.{newline}{link} to add one.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Notification Preferences", "navbar.rename": "Rename Channel...", "navbar.setHeader": "Set Channel Header...", @@ -2578,7 +2578,7 @@ "sidebar.otherMembers": "Outside this team", "sidebar.pg": "PRIVATE CHANNELS", "sidebar.removeList": "Remove from list", - "sidebar.tutorialScreen1": "

Channels

Channels organize conversations across different topics. They’re open to everyone on your team. To send private communications use Direct Messages for a single person or Private Channel for multiple people.

", + "sidebar.tutorialScreen1": "

Channels

Channels organize conversations across different topics. They're open to everyone on your team. To send private communications use Direct Messages for a single person or Private Channel for multiple people.

", "sidebar.tutorialScreen2": "

\"{townsquare}\" and \"{offtopic}\" channels

Here are two public channels to start:

{townsquare} is a place for team-wide communication. Everyone in your team is a member of this channel.

{offtopic} is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.

", "sidebar.tutorialScreen3": "

Creating and Joining Channels

Click \"More...\" to create a new channel or join an existing one.

You can also create a new channel by clicking the \"+\" symbol next to the public or private channel header.

", "sidebar.unreadSection": "UNREADS", @@ -2681,7 +2681,7 @@ "team_import_tab.failure": " Import failure: ", "team_import_tab.import": "Import", "team_import_tab.importHelpDocsLink": "documentation", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Advanced Exporter", "team_import_tab.importHelpLine1": "Slack import to Mattermost supports importing of messages in your Slack team's public channels.", "team_import_tab.importHelpLine2": "To import a team from Slack, go to {exportInstructions}. See {uploadDocsLink} to learn more.", @@ -2719,7 +2719,7 @@ "textbox.preview": "Preview", "textbox.quote": ">quote", "textbox.strike": "strike", - "tutorial_intro.allSet": "You’re all set", + "tutorial_intro.allSet": "You're all set", "tutorial_intro.end": "Click \"Next\" to enter {channel}. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.", "tutorial_intro.invite": "Invite teammates", "tutorial_intro.mobileApps": "Install the apps for {link} for easy access and notifications on the go.", @@ -2730,7 +2730,7 @@ "tutorial_intro.skip": "Skip tutorial", "tutorial_intro.support": "Need anything, just email us at ", "tutorial_intro.teamInvite": "Invite teammates", - "tutorial_intro.whenReady": " when you’re ready.", + "tutorial_intro.whenReady": " when you're ready.", "tutorial_tip.next": "Next", "tutorial_tip.ok": "Okay", "tutorial_tip.out": "Opt out of these tips.", @@ -2761,7 +2761,6 @@ "user.settings.advance.sendTitle": "Send messages on CTRL+ENTER", "user.settings.advance.slashCmd_autocmp": "Enable external application to offer slash command autocomplete", "user.settings.advance.title": "Advanced Settings", - "user.settings.advance.webrtc_preview": "Enable the ability to make and receive one-on-one WebRTC calls", "user.settings.custom_theme.awayIndicator": "Away Indicator", "user.settings.custom_theme.buttonBg": "Button BG", "user.settings.custom_theme.buttonColor": "Button Text", @@ -3053,6 +3052,9 @@ "user.settings.tokens.activate": "Activate", "user.settings.tokens.cancel": "Cancel", "user.settings.tokens.clickToEdit": "Click 'Edit' to manage your personal access tokens", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Yes, Create", "user.settings.tokens.confirmCreateMessage": "You are generating a personal access token with System Admin permissions. Are you sure want to create this token?", "user.settings.tokens.confirmCreateTitle": "Create System Admin Personal Access Token", @@ -3078,6 +3080,7 @@ "user.settings.tokens.token": "Access Token: ", "user.settings.tokens.tokenDesc": "Token Description: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Loading...", "user.settings.tokens.userAccessTokensNone": "No personal access tokens.", "user_list.notFound": "No users found", "user_profile.account.editSettings": "Edit Account Settings", @@ -3089,6 +3092,7 @@ "view_image.loading": "Loading ", "view_image_popover.download": "Download", "view_image_popover.file": "File {count, number} of {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Get Public Link", "web.footer.about": "About", "web.footer.help": "Help", diff --git a/assets/base/i18n/es.json b/assets/base/i18n/es.json index 942d5fbb0..f0d9ae045 100644 --- a/assets/base/i18n/es.json +++ b/assets/base/i18n/es.json @@ -92,7 +92,7 @@ "add_emoji.save": "Guardar", "add_incoming_webhook.cancel": "Cancelar", "add_incoming_webhook.channel": "Canal", - "add_incoming_webhook.channel.help": "Canal público o privado que recibe el mensaje del webhook. Debes pertenecer al canal privado para configurar el webhook.", + "add_incoming_webhook.channel.help": "Canal público o privado predeterminado que recibe el mensaje del webhook. Debes pertenecer al canal privado para configurar el webhook.", "add_incoming_webhook.channelRequired": "Es obligatorio asignar un canal válido", "add_incoming_webhook.description": "Descripción", "add_incoming_webhook.description.help": "Descripción del webhook de entrada.", @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Habilitar el inicio de sesión con nombre de usuario: ", "admin.email.connectionSecurityTest": "Probar Conexión", "admin.email.easHelp": "Conoce más acerca de como compilar y desplegar tus propias aplicaciones móviles desde un App Store de Empresa.", - "admin.email.emailFail": "Conexión fallida: {error}", "admin.email.emailSuccess": "No fueron reportados errores mientras se enviada el correo. Favor validar en tu bandeja de entrada.", "admin.email.enableEmailBatching.clusterEnabled": "El procesamiento por lotes de correos electrónicos no puede ser activado cuando el modo de Alta Disponibilidad está habilitado.", "admin.email.enableEmailBatching.siteURL": "El procesamiento por lotes de correos electrónicos no puede ser activado a menos que la URL del Sitio sea configurada en Configuración > URL del Sitio.", @@ -450,7 +449,7 @@ "admin.files.storage": "Almacenamiento", "admin.general.configuration": "Configuración", "admin.general.localization": "Idiomas", - "admin.general.localization.availableLocalesDescription": "Asigna que idiomas están disponibles para los usuarios en Configuración de la Cuenta (al dejar este campo en blanco todos los idiomas estarán disponibles). Si está agregando un nuevo idioma manualmente, el Idioma predeterminado para el Cliente debe ser agregado antes de guardar estos ajustes.

Te gustaría ayudar con las traducciones? Únete al Servidor de Traducciones de Mattermost para contribuir.", + "admin.general.localization.availableLocalesDescription": "Asigna que idiomas están disponibles para los usuarios en Configuración de la Cuenta (al dejar este campo en blanco todos los idiomas estarán disponibles). Si está agregando un nuevo idioma manualmente, el Idioma predeterminado para el Cliente debe ser agregado antes de guardar estos ajustes.

¿Te gustaría ayudar con las traducciones? Únete al Servidor de Traducciones de Mattermost para contribuir.", "admin.general.localization.availableLocalesNoResults": "No se han encontrado resultados", "admin.general.localization.availableLocalesNotPresent": "El idioma predefinido para el cliente debe ser incluido en la lista de idiomas disponibles", "admin.general.localization.availableLocalesTitle": "Idiomas disponibles:", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Ej.: \"mail\" o \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Atributo de Correo Electrónico:", "admin.ldap.enableDesc": "Cuando es verdadero, Mattermost permite realizar inicio de sesión utilizando AD/LDAP", - "admin.ldap.enableSyncDesc": "Cuando es verdadero, Mattermost sincroniza los usuarios de AD/LDAP periódicamente. Cuando es falso, los atributos del usuario son actualizados desde SAML durante el inicio de sesión.", + "admin.ldap.enableSyncDesc": "Cuando es verdadero, Mattermost sincroniza los usuarios de AD/LDAP periódicamente. Cuando es falso, los atributos del usuario son actualizados desde AD/LDAP durante el inicio de sesión.", "admin.ldap.enableSyncTitle": "Habilitar Sincronización con AD/LDAP:", "admin.ldap.enableTitle": "Habilitar el inicio de sesión con AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Opcional) el atributo en el servidor AD/LDAP que se utilizará para rellenar el nombre de los usuarios en Mattermost. Cuando se establece, los usuarios no serán capaces de editar su nombre, ya que se sincroniza con el servidor AD/LDAP. Cuando se deja en blanco, los usuarios pueden establecer su propio nombre en la Configuración de la Cuenta.", @@ -640,7 +639,7 @@ "admin.ldap.skipCertificateVerification": "Omitir la Verificación del Certificado:", "admin.ldap.skipCertificateVerificationDesc": "Omite la verificación del certificado para las conexiones TLS o STARTTLS. No recomendado para ambientes de producción donde TLS es requerido. Utilizalo sólamente para pruebas.", "admin.ldap.syncFailure": "Error de Sincronización: {error}", - "admin.ldap.syncIntervalHelpText": "La Sincronización AD/LDAP actualiza la información de usuarios en Mattermost para reflejar las actualizaciones en el servidor AD/LDAP. Por ejemplo, cuando un el nombre de usuario cambia en el servidor AD/LDAP, el cambio es reflejado en Mattermost cuando se realiza la sincronización. Las cuentas eliminadas o inhabilitadas en el servidor AD/LDAP tendrán sus cuentas en Mattermost como \"Inactiva\" y las sesiones revocadas. Mattermost realiza la sincronización en el intervalo de ingresado. Por ejemplo, si se introduce 60, Mattermost sincroniza cada 60 minutos.", + "admin.ldap.syncIntervalHelpText": "La Sincronización AD/LDAP actualiza la información de usuarios en Mattermost para reflejar las actualizaciones en el servidor AD/LDAP. Por ejemplo, cuando un el nombre de usuario cambia en el servidor AD/LDAP, el cambio es reflejado en Mattermost cuando se realiza la sincronización. Las cuentas eliminadas o inhabilitadas en el servidor AD/LDAP tendrán sus cuentas en Mattermost como \"Inactiva\" y las sesiones serán revocadas. Mattermost realiza la sincronización en el intervalo de ingresado. Por ejemplo, si se introduce 60, Mattermost sincroniza cada 60 minutos.", "admin.ldap.syncIntervalTitle": "Intervalo de Sincronización (minutos):", "admin.ldap.syncNowHelpText": "Inicia una sincronización AD/LDAP inmediatamente.", "admin.ldap.sync_button": "Sincronizar AD/LDAP Ahora", @@ -691,7 +690,7 @@ "admin.log.locationPlaceholder": "Ingresar locación de archivo", "admin.log.locationTitle": "Directorio del Archivo de Registro:", "admin.log.logSettings": "Configuración de registro", - "admin.log.noteDescription": "Changing properties other than Enable Webhook Debugging and Enable Diagnostics and Error Reporting in this section will require a server restart before taking effect.", + "admin.log.noteDescription": "Cambiar cualquier otro ajuste que no sea Habilitar Depuración de WebHook y Habilitar Reportes de Diagnostico y Error en esta sección require que el servidor sea reiniciado para surgir efecto.", "admin.logs.bannerDesc": "Para buscar usuarios por ID del usuario o ID del Token, dirigete a Reportes > Usuarios y copia el ID en el filtro de búsqueda.", "admin.logs.next": "Siguiente", "admin.logs.prev": "Anterior", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Conexiones a BD de Replica", "analytics.system.totalSessions": "Total de Sesiones", "analytics.system.totalTeams": "Total de Equipos", - "analytics.system.totalUsers": "Total de Usuarios", + "analytics.system.totalUsers": "Total de Usuarios Activos", "analytics.system.totalWebsockets": "Conexiones por WebSocket", "analytics.team.activeUsers": "Usuarios Activos con Mensajes", "analytics.team.newlyCreated": "Nuevos Usuarios Creados", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Usuarios Recientemente Activos", "analytics.team.title": "Estádisticas del Equipo {team}", "analytics.team.totalPosts": "Total de Mensajes", - "analytics.team.totalUsers": "Total de Usuarios", + "analytics.team.totalUsers": "Total de Usuarios Activos", "api.channel.add_member.added": "{addedUsername} agregado al canal por {username}", "api.channel.delete_channel.archived": "{username} archivó el canal.", "api.channel.join_channel.post_and_forget": "{username} se ha unido al canal.", @@ -2072,7 +2071,7 @@ "mobile.create_channel": "Crear", "mobile.create_channel.private": "Nuevo Canal Privado", "mobile.create_channel.public": "Nuevo Canal Público", - "mobile.create_post.read_only": "This channel is read-only", + "mobile.create_post.read_only": "Este canal es de sólo lectura", "mobile.custom_list.no_results": "Sin resultados", "mobile.document_preview.failed_description": "Ocurrió un error al abrir el documento. Por favor verifica que tienes instalado un visor para archivos {fileType} e intenta de nuevo.\n", "mobile.document_preview.failed_title": "Error Abriendo Documento", @@ -2109,7 +2108,7 @@ "mobile.extension.permission": "Mattermost necesita acceso al almacenamiento del dispositivo para poder compartir archivos.", "mobile.extension.posting": "Publicando...", "mobile.extension.title": "Compartir en Mattermost", - "mobile.failed_network_action.description": "There seems to be a problem with your internet connection. Make sure you have an active connection and try again.", + "mobile.failed_network_action.description": "Parece haber un problema con tu conexión de internet. Asegura que tienes una conexión activa e intenta de nuevo.", "mobile.failed_network_action.retry": "Intentar de nuevo", "mobile.failed_network_action.title": "Sin conexión a Internet", "mobile.file_upload.camera": "Sacar Foto o Vídeo", @@ -2118,7 +2117,7 @@ "mobile.file_upload.more": "Más", "mobile.file_upload.video": "Librería de Videos", "mobile.flagged_posts.empty_description": "Las banderas son una forma de marcar los mensajes para hacerles seguimiento. Tus banderas son personales, y no puede ser vistas por otros usuarios.", - "mobile.flagged_posts.empty_title": "Mensajes Marcados", + "mobile.flagged_posts.empty_title": "No hay Mensajes Marcados", "mobile.help.title": "Ayuda", "mobile.image_preview.deleted_post_message": "Este mensaje y sus archivos han sido eliminados. La vista previa se cerrará.", "mobile.image_preview.deleted_post_title": "Mensaje Eliminado", @@ -2205,8 +2204,8 @@ "mobile.post_textbox.uploadFailedDesc": "Algunos archivos adjuntos no se han subido al servidor, ¿Quieres publicar el mensaje?", "mobile.post_textbox.uploadFailedTitle": "Error Adjuntando", "mobile.posts_view.moreMsg": "Más Mensajes Arriba", - "mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.", - "mobile.recent_mentions.empty_title": "Menciones recientes", + "mobile.recent_mentions.empty_description": "Mensajes que contienen tu nombre de usuario u otras palabras que desencadenan menciones aparecerán aquí.", + "mobile.recent_mentions.empty_title": "No hay Menciones recientes", "mobile.rename_channel.display_name_maxLength": "El nombre del canal debe tener menos de {maxLength, number} caracteres", "mobile.rename_channel.display_name_minLength": "El nombre del canal debe ser de {minLength, number} o más caracteres", "mobile.rename_channel.display_name_required": "Se requiere el nombre del canal", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Seleccionar Equipo", "mobile.share_extension.cancel": "Cancelar", "mobile.share_extension.channel": "Canal", + "mobile.share_extension.error_close": "Cerrar", + "mobile.share_extension.error_message": "Ocurrió un error utilizando la extensión para compartir.", + "mobile.share_extension.error_title": "Error en la Extensión", "mobile.share_extension.send": "Enviar", "mobile.share_extension.team": "Equipo", "mobile.suggestion.members": "Miembros", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Buscar y agregar miembros", "navbar.addMembers": "Agregar Miembros", "navbar.click": "Clic aquí", + "navbar.clickToAddHeader": "{clickHere} para agregar uno.", "navbar.delete": "Borrar Canal...", "navbar.leave": "Abandonar Canal", "navbar.manageMembers": "Administrar Miembros", - "navbar.noHeader": "Todavía no hay un encabezado.{newline}{link} para agregar uno.", + "navbar.noHeader": "Todavía no hay un encabezado.", "navbar.preferences": "Preferencias de Notificación", "navbar.rename": "Renombrar Canal...", "navbar.setHeader": "Asignar Encabezado del Canal...", @@ -2575,7 +2578,7 @@ "sidebar.otherMembers": "Fuera de este equipo", "sidebar.pg": "CANALES PRIVADOS", "sidebar.removeList": "Remover de la lista", - "sidebar.tutorialScreen1": "

Canales

Canales organizan las conversaciones en diferentes tópicos. Son abiertos para cualquier persona de tu equipo. Para enviar comunicaciones privadas con una sola persona utiliza Mensajes Directos o con multiples personas utilizando Canales Privados.

", + "sidebar.tutorialScreen1": "

Canales

Los Canales organizan las conversaciones en diferentes tópicos. Son abiertos para cualquier persona de tu equipo. Para enviar comunicaciones privadas con una sola persona utiliza Mensajes Directos o con multiples personas utilizando Canales Privados.

", "sidebar.tutorialScreen2": "

Los canal \"{townsquare}\" y \"{offtopic}\"

Estos son dos canales para comenzar:

{townsquare} es el lugar para tener comunicación con todo el equipo. Todos los integrantes de tu equipo son miembros de este canal.

{offtopic} es un lugar para diversión y humor fuera de los canales relacionados con el trabajo. Tu y tu equipo pueden decidir que otros canales crear.

", "sidebar.tutorialScreen3": "

Creando y Uniéndose a Canales

Haz clic en \"Más...\" para crear un nuevo canal o unirte a uno existente.

También puedes crear un nuevo canal al hacer clic en el símbolo de \"+\" que se encuentra al lado del encabezado de canales públicos o privados.

", "sidebar.unreadSection": "SIN LEER", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Fallo al importar: ", "team_import_tab.import": "Importar", "team_import_tab.importHelpDocsLink": "documentación", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Exportador Avanzado de Slack", "team_import_tab.importHelpLine1": "Importar de Slack a Mattermost admite la importación de los mensajes en los canales públicos del equipo de Slack.", "team_import_tab.importHelpLine2": "Para importar un equipo desde Slack, ve a {exportInstructions}. Revisa la {uploadDocsLink} para conocer más.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Enviar mensajes con CTRL+RETORNO", "user.settings.advance.slashCmd_autocmp": "Habilitar que una aplicación externa ofrezca el autocompletado de los comandos de barra", "user.settings.advance.title": "Configuración Avanzada", - "user.settings.advance.webrtc_preview": "Habilitar la capacidad para hacer y recibir llamadas WebRTC uno-a-uno", "user.settings.custom_theme.awayIndicator": "Indicador Ausente", "user.settings.custom_theme.buttonBg": "Fondo Botón", "user.settings.custom_theme.buttonColor": "Texto Botón", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Activar", "user.settings.tokens.cancel": "Cancelar", "user.settings.tokens.clickToEdit": "Haga clic en 'Editar' para gestionar sus tokens de acceso personales", + "user.settings.tokens.confirmCopyButton": "Sí, ya copié el token", + "user.settings.tokens.confirmCopyMessage": "Asegúrate de haber copiado y guardado el token de acceso que se muestra a continuación. ¡No volverás a verlo nuevamente!", + "user.settings.tokens.confirmCopyTitle": "¿Copiaste tu token?", "user.settings.tokens.confirmCreateButton": "Sí, Crear", "user.settings.tokens.confirmCreateMessage": "Estás generando un token de acceso personal con permisos de Admin del Sistema. ¿Estás seguro de querer crear este token?", "user.settings.tokens.confirmCreateTitle": "Creación de Token de Acceso Personal como Admin del Sistema", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Token de Acceso: ", "user.settings.tokens.tokenDesc": "Descripción del Token: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Cargando...", "user.settings.tokens.userAccessTokensNone": "No hay tokens de acceso personales.", "user_list.notFound": "No se encontraron usuarios", "user_profile.account.editSettings": "Editar Configuración de la Cuenta", @@ -3086,6 +3092,7 @@ "view_image.loading": "Cargando ", "view_image_popover.download": "Descargar", "view_image_popover.file": "Archivo {count, number} de {total, number}", + "view_image_popover.open": "Abrir", "view_image_popover.publicLink": "Obtener Enlace Público", "web.footer.about": "Acerca", "web.footer.help": "Ayuda", diff --git a/assets/base/i18n/fr.json b/assets/base/i18n/fr.json index 9e1b2d1ca..bbadbc251 100644 --- a/assets/base/i18n/fr.json +++ b/assets/base/i18n/fr.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Activer la connexion avec nom d'utilisateur : ", "admin.email.connectionSecurityTest": "Tester la connexion", "admin.email.easHelp": "En savoir plus sur la compilation et le déploiement de vos propres applications mobiles à partir de l'App Store Entreprise.", - "admin.email.emailFail": "Echec de la connexion : {error}", "admin.email.emailSuccess": "Aucune erreur signalée lors de l'envoi de l'e-mail. Vérifiez votre boîte de réception pour vous en assurer.", "admin.email.enableEmailBatching.clusterEnabled": "L'envoi d'e-mails par lot ne peut pas être activé lorsque le mode haute disponibilité est activé.", "admin.email.enableEmailBatching.siteURL": "L'envoi d'e-mails par lot ne peut pas être activé tant que l'URL de site n'est pas configurée dans Configuration > URL de site.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Connexions bases de données de réplication", "analytics.system.totalSessions": "Nombre de sessions", "analytics.system.totalTeams": "Nombre d'équipes", - "analytics.system.totalUsers": "Nombre d'utilisateurs", + "analytics.system.totalUsers": "Utilisateurs mensuels", "analytics.system.totalWebsockets": "Connexions WebSocket", "analytics.team.activeUsers": "Nombre d'utilisateurs actifs avec messages", "analytics.team.newlyCreated": "Nouveaux utilisateurs", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Utilisateurs récemment actifs", "analytics.team.title": "Statistiques d'équipe pour {team}", "analytics.team.totalPosts": "Nombre de messages", - "analytics.team.totalUsers": "Nombre d'utilisateurs", + "analytics.team.totalUsers": "Utilisateurs mensuels", "api.channel.add_member.added": "{addedUsername} a été ajouté au canal par {username}.", "api.channel.delete_channel.archived": "{username} a archivé le canal.", "api.channel.join_channel.post_and_forget": "{username} a rejoint le canal.", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Sélection d'équipe", "mobile.share_extension.cancel": "Annuler", "mobile.share_extension.channel": "Canal", + "mobile.share_extension.error_close": "Quitter", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Envoyer", "mobile.share_extension.team": "Équipe", "mobile.suggestion.members": "Membres", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Rechercher et ajouter des membres", "navbar.addMembers": "Ajouter Membres", "navbar.click": "Cliquez ici", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Supprimer le canal...", "navbar.leave": "Quitter le canal", "navbar.manageMembers": "Gérer les membres", - "navbar.noHeader": "Aucun entête de canal encore défini.{newline}{link} pour en ajouter un.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Préférences de notifications", "navbar.rename": "Renommer le canal...", "navbar.setHeader": "Définir l'entête du canal...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Échec de l'import ", "team_import_tab.import": "Importer", "team_import_tab.importHelpDocsLink": "documentation", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Advanced Exporter", "team_import_tab.importHelpLine1": "L'outil d'importation Slack vers Mattermost supporte désormais l'importation des messages des canaux publics d'équipes Slack.", "team_import_tab.importHelpLine2": "Pour importer une équipe de Slack, allez dans {exportInstructions}. Rendez-vous dans la {uploadDocsLink} pour en savoir plus.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Envoyer des messages avec CTRL+ENTREE", "user.settings.advance.slashCmd_autocmp": "Autoriser les applications externes à proposer l'auto-complétion des commandes slash", "user.settings.advance.title": "Paramètres avancés", - "user.settings.advance.webrtc_preview": "Activer la possibilité de passer et de recevoir des appels WebRTC en tête-à-tête", "user.settings.custom_theme.awayIndicator": "Indicateur \"absent\"", "user.settings.custom_theme.buttonBg": "Arrière-plan du bouton", "user.settings.custom_theme.buttonColor": "Texte de bouton", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Activer", "user.settings.tokens.cancel": "Annuler", "user.settings.tokens.clickToEdit": "Cliquez sur 'Modifier' pour gérer vos jetons d'accès", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Oui, créer", "user.settings.tokens.confirmCreateMessage": "Vous êtes sur le point de générer un jeton d'accès personnel avec les permissions d'administrateur système. Voulez-vous vraiment créer ce type de jeton ?", "user.settings.tokens.confirmCreateTitle": "Créer un jeton d'accès personnel d'administrateur système", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Jeton d'accès : ", "user.settings.tokens.tokenDesc": "Description du jeton : ", "user.settings.tokens.tokenId": "ID du jeton : ", + "user.settings.tokens.tokenLoading": "Chargement…", "user.settings.tokens.userAccessTokensNone": "Aucun jeton d'accès personnel.", "user_list.notFound": "Aucun utilisateur trouvé.", "user_profile.account.editSettings": "Éditer les paramètres du compte", @@ -3086,6 +3092,7 @@ "view_image.loading": "Chargement ", "view_image_popover.download": "Télécharger", "view_image_popover.file": "Fichier {count, number} de {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Obtenir le lien public", "web.footer.about": "À propos", "web.footer.help": "Aide", diff --git a/assets/base/i18n/it.json b/assets/base/i18n/it.json index 8b3993260..307c9bb6d 100644 --- a/assets/base/i18n/it.json +++ b/assets/base/i18n/it.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Abilita accesso con nome utente: ", "admin.email.connectionSecurityTest": "Connessione di prova", "admin.email.easHelp": "Scopri di più sulla compilazione e la distribuzione die app proprietarie sul sito App Store Enterprise.", - "admin.email.emailFail": "Connessione non riuscita: {error}", "admin.email.emailSuccess": "Nessun errore riportato durante l'invio delle eMail. Controllare la vostra Inbox.", "admin.email.enableEmailBatching.clusterEnabled": "L'invio di email in blocco non può essere attivato nella modalità Alta disponibilità.", "admin.email.enableEmailBatching.siteURL": "L'invio di email in blocco non può essere attivato senza la configurazione del SiteURL in Configurazione > SiteURL.", @@ -450,7 +449,7 @@ "admin.files.storage": "Archiviazione", "admin.general.configuration": "Configurazione", "admin.general.localization": "Localizzazione", - "admin.general.localization.availableLocalesDescription": "Impostare quali lingue sono disponibili per gli utenti nelle Impostazioni utente (lasciare in bianco per tutte le lingue disponibili). Se si stanno aggiungendo manualmente altre lingue, si deve aggiungere la Lingua predefinita utente prima di salvare.

. Se si vuole contribuire alla traduzione, iscriversi al Server traduzioni Mattermost.", + "admin.general.localization.availableLocalesDescription": "Impostare quali lingue sono disponibili per gli utenti nelle Impostazioni Account (lasciare in bianco per tutte le lingue disponibili). Se si stanno aggiungendo manualmente altre lingue, si deve aggiungere la Lingua predefinita utente prima di salvare.

. Vuoi contribuire alle traduzioni? Iscriviti al Server traduzioni Mattermost per contribuire.", "admin.general.localization.availableLocalesNoResults": "Nessun risultato trovato", "admin.general.localization.availableLocalesNotPresent": "La lingua predefinita del client deve essere inclusa nella lista di quelle disponibili", "admin.general.localization.availableLocalesTitle": "Lingue disponibili:", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Es.: \"mail\" o \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Attributi Email:", "admin.ldap.enableDesc": "Quando abilitato, Mattermost ammetterà il login utilizzando AD/LDAP", - "admin.ldap.enableSyncDesc": "Se vero, Mattermost sincronizza periodicamente gli utenti da AD/LDAP. Se falso, gli attributi utente sono aggiornati da SAML durante il login.", + "admin.ldap.enableSyncDesc": "Se vero, Mattermost sincronizza periodicamente gli utenti da AD/LDAP. Se falso, gli attributi utente sono aggiornati da AD/LDAP solamente durante il login.", "admin.ldap.enableSyncTitle": "Abilita sincronizzazione con AD/LDAP:", "admin.ldap.enableTitle": "Abilita il login con AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Opzionale) L'attributo usato nel server AD/LDAP che verrà utilizzato per popolare il campo nome proprio degli utenti in Mattermost. Quando abilitato, gli utenti non saranno in grado di modificare il loro nome proprio poichè sincronizzato con il server LDAP. Quando lasciato vuoto, gli utenti possono impostare il nome proprio nelle Impostazioni Account.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Connessioni al database di replica", "analytics.system.totalSessions": "Sessioni totali", "analytics.system.totalTeams": "Gruppi totali", - "analytics.system.totalUsers": "Utenti totali", + "analytics.system.totalUsers": "Utenti attivi mensilmente", "analytics.system.totalWebsockets": "Connessioni WebSocket", "analytics.team.activeUsers": "Utenti Attivi Con Pubblicazioni", "analytics.team.newlyCreated": "Utenti Creati Recentemente", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Utenti Attivi Recentemente", "analytics.team.title": "Statistiche gruppo per {team}", "analytics.team.totalPosts": "Pubblicazioni totali", - "analytics.team.totalUsers": "Utenti totali", + "analytics.team.totalUsers": "Utenti attivi mensilmente", "api.channel.add_member.added": "{addedUsername} aggiunto al canale da {username}.", "api.channel.delete_channel.archived": "{username} ha archiviato il canale.", "api.channel.join_channel.post_and_forget": "{username} è entrato nel canale.", @@ -2072,7 +2071,7 @@ "mobile.create_channel": "Crea", "mobile.create_channel.private": "Nuovo Canale Privato", "mobile.create_channel.public": "Nuovo Canale Pubblico", - "mobile.create_post.read_only": "This channel is read-only", + "mobile.create_post.read_only": "Questo canale è in sola lettura", "mobile.custom_list.no_results": "Nessun risultato", "mobile.document_preview.failed_description": "Errore durante l'apertura del documento. Assicurarsi di avere installato il visualizzatore per i file di tipo {fileType} e riprovare.\n", "mobile.document_preview.failed_title": "Apertura Documento fallita", @@ -2109,7 +2108,7 @@ "mobile.extension.permission": "Mattermost necessità di accedere alla memoria del dispositivo per condividere i file.", "mobile.extension.posting": "Pubblicazione in corso...", "mobile.extension.title": "Condividi in Mattermos", - "mobile.failed_network_action.description": "There seems to be a problem with your internet connection. Make sure you have an active connection and try again.", + "mobile.failed_network_action.description": "Sembra esserci un problema con la tua connessione internet. Assicurati di avere una connessione attiva e riprova.", "mobile.failed_network_action.retry": "Riprova", "mobile.failed_network_action.title": "Nessuna connessione internet", "mobile.file_upload.camera": "Scatta una Foto o registra un Video", @@ -2118,7 +2117,7 @@ "mobile.file_upload.more": "Più", "mobile.file_upload.video": "Libreria video", "mobile.flagged_posts.empty_description": "Contrassegnare i messaggi è uno strumento per seguirli. I contrassegni sono personali e non sono visibili agli altri utenti.", - "mobile.flagged_posts.empty_title": "Pubblicazioni segnati", + "mobile.flagged_posts.empty_title": "Nessuna pubblicazione contrassegnata", "mobile.help.title": "Aiuto", "mobile.image_preview.deleted_post_message": "Questa pubblicazione e i suoi file sono stati cancellati. L'anteprima verrà chiusa.", "mobile.image_preview.deleted_post_title": "Pubblicazione cancellata", @@ -2205,8 +2204,8 @@ "mobile.post_textbox.uploadFailedDesc": "Impossibile caricare alcuni allegati, sicuro di voler pubblicare il messaggio?", "mobile.post_textbox.uploadFailedTitle": "Allegati non caricati", "mobile.posts_view.moreMsg": "Aggiungere più nuovi messaggi sopra", - "mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.", - "mobile.recent_mentions.empty_title": "Citazioni Recenti", + "mobile.recent_mentions.empty_description": "I messaggi contenti il tuo nome utente e altre parole che scatenano citazioni appariranno qui.", + "mobile.recent_mentions.empty_title": "Nessuna Citazione Recente", "mobile.rename_channel.display_name_maxLength": "Il nome del canale deve essere al massimo di {maxLength, number} caratteri", "mobile.rename_channel.display_name_minLength": "Il nome del canale deve essere lungo almeno {minLength, number} caratteri", "mobile.rename_channel.display_name_required": "È richiesto il nome del canale", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Seleziona gruppo", "mobile.share_extension.cancel": "Annulla", "mobile.share_extension.channel": "Canale", + "mobile.share_extension.error_close": "Chiudi", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Invia", "mobile.share_extension.team": "Gruppo", "mobile.suggestion.members": "Membri", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Cercare ed aggiungere membri", "navbar.addMembers": "Aggiungi Membro", "navbar.click": "Clicca qui", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Elimina Canale...", "navbar.leave": "Elimina Canale", "navbar.manageMembers": "Amministra Membri", - "navbar.noHeader": "Nessun intestazione per il canale.{newline}{link} per aggiungerne una.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Preferenze delle Notifiche", "navbar.rename": "Rinomina Canale...", "navbar.setHeader": "Imposta Intstazione Canale...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Importazione fallita: ", "team_import_tab.import": "Importa", "team_import_tab.importHelpDocsLink": "documentazione", - "team_import_tab.importHelpExportInstructions": "Slack > Impostazioni gruppo > Importa /Esporta > Esporta > Inizia esportazione", + "team_import_tab.importHelpExportInstructions": "Slack > Amministrazione > Impostazioni spazio di lavoro > Importa/Esporta dati > Esporta > Avvia esportazione", "team_import_tab.importHelpExporterLink": "Esportazione Avanzata Slack", "team_import_tab.importHelpLine1": "L'importazione di Slack in Mattermost supporta l'importazione dei messaggi nei tuoi canali pubblici di Slack.", "team_import_tab.importHelpLine2": "Per importare i tuoi gruppi da Slack, vai a {exportInstructions}. Vedi {uploadDocsLink} per ulteriori informazioni.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Invia messaggi con CTRL+INVIO", "user.settings.advance.slashCmd_autocmp": "Abilita le applicazioni esterne ad offrire l'autocompletamento dei comandi slash", "user.settings.advance.title": "Impostazioni avanzate", - "user.settings.advance.webrtc_preview": "Abilita la possibilità di fare e ricevere chiamate uno-a-uno WebRTC", "user.settings.custom_theme.awayIndicator": "Indicatore di assenza", "user.settings.custom_theme.buttonBg": "BG Pulsante", "user.settings.custom_theme.buttonColor": "Testo del pulsante", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Attiva", "user.settings.tokens.cancel": "Annulla", "user.settings.tokens.clickToEdit": "Clicca 'Modifica' per gestire i token di accesso", + "user.settings.tokens.confirmCopyButton": "Si, ho copiato il token", + "user.settings.tokens.confirmCopyMessage": "Assicurati di aver copiato e salvato il token di accesso sottostante. Non riuscirai a vederlo di nuovo!", + "user.settings.tokens.confirmCopyTitle": "Hai copiato il tuo token?", "user.settings.tokens.confirmCreateButton": "Sì, Crealo", "user.settings.tokens.confirmCreateMessage": "Stai generando un token di accesso con i permessi di Amministratore di Sistema. Sicuro di voler continuare?", "user.settings.tokens.confirmCreateTitle": "Crea un Token di Accesso come Amministratore di Sistema", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Token di Accesso: ", "user.settings.tokens.tokenDesc": "Descrizione del Token: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Caricamento...", "user.settings.tokens.userAccessTokensNone": "Nessun token di accesso personale.", "user_list.notFound": "Nessun utente trovato", "user_profile.account.editSettings": "Impostazioni Account", @@ -3086,6 +3092,7 @@ "view_image.loading": "Caricamento ", "view_image_popover.download": "Scarica", "view_image_popover.file": "File {count, number} di {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Prendi collegamento pubblico", "web.footer.about": "Riguardo a", "web.footer.help": "Aiuto", diff --git a/assets/base/i18n/ja.json b/assets/base/i18n/ja.json index aea6be9bf..3873a8494 100644 --- a/assets/base/i18n/ja.json +++ b/assets/base/i18n/ja.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "ユーザー名でのサインインを有効にする: ", "admin.email.connectionSecurityTest": "接続をテストする", "admin.email.easHelp": "あなた自身のためのモバイルアプリをコンパイルし展開する方法についてはエンタープライズアプリストアを参照してください。", - "admin.email.emailFail": "接続できません: {error}", "admin.email.emailSuccess": "電子メールを送信するに当たりエラーはありませんでした。受信ボックスを確認してください。", "admin.email.enableEmailBatching.clusterEnabled": "高可用モードを有効にした場合、電子メールバッチ処理を有効にすることはできません。", "admin.email.enableEmailBatching.siteURL": "設定 > サイトURLのサイトURLを設定しない限り、電子メールバッチ処理を有効にすることはできません。", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "例: \"mail\" or \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "電子メール属性値:", "admin.ldap.enableDesc": "有効な場合、MattermostはログインにAD/LDAPの使用を許可します", - "admin.ldap.enableSyncDesc": "有効な場合、Mattermostは定期的にAD/LDAPからユーザー情報を同期します。無効の場合、ユーザー属性はユーザーがログインしている間にSAMLより更新されます。", + "admin.ldap.enableSyncDesc": "有効な場合、Mattermostは定期的にAD/LDAPからユーザー情報を同期します。無効の場合、ユーザー属性はユーザーがログインしている間にAD/LDAPより更新されます。", "admin.ldap.enableSyncTitle": "AD/LDAPとの同期を有効にする:", "admin.ldap.enableTitle": "AD/LDAPでのサインインを有効にする:", "admin.ldap.firstnameAttrDesc": "(オプション) Mattermostのユーザーの名前(ファーストネーム)を設定するために使用されるAD/LDAPサーバーの属性です。設定された場合、この属性はLDAPサーバーと同期されるため、ユーザーは名前(ファーストネーム)を編集することはできません。空欄のままにした場合、ユーザーはアカウントの設定で自身の名前(ファーストネーム)を設定できます。", @@ -844,7 +843,7 @@ "admin.reset_password.titleSwitch": "アカウントを電子メールアドレス/パスワードに切り替える", "admin.revoke_token_button.delete": "削除", "admin.s3.connectionS3Test": "接続をテストする", - "admin.s3.s3Fail": "接続できません: {error}", + "admin.s3.s3Fail": "接続できませんでした: {error}", "admin.s3.s3Success": "接続に成功しました", "admin.s3.testing": "テストしています…", "admin.saml.assertionConsumerServiceURLDesc": "https:///login/sso/saml を入力してください。HTTPとHTTPSのどちらを使うか注意してください。この入力欄は、アサーションコンシューマーサービスURLとも呼ばれます。", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "レプリカDB接続", "analytics.system.totalSessions": "総セッション数", "analytics.system.totalTeams": "総チーム数", - "analytics.system.totalUsers": "総ユーザー数", + "analytics.system.totalUsers": "月次アクティブユーザー", "analytics.system.totalWebsockets": "ウェブソケット接続", "analytics.team.activeUsers": "投稿実績のあるアクティブユーザー", "analytics.team.newlyCreated": "新規作成ユーザー数", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "最近のアクティブユーザー数", "analytics.team.title": "{team}チームの使用統計", "analytics.team.totalPosts": "総投稿数", - "analytics.team.totalUsers": "総ユーザー数", + "analytics.team.totalUsers": "月次アクティブユーザー", "api.channel.add_member.added": "{addedUsername} は {username} によってチャンネルに追加されました。", "api.channel.delete_channel.archived": "{username} がチャンネルをアーカイブしました。", "api.channel.join_channel.post_and_forget": "{username} がチャンネルに参加しました。", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "チームを切り替える", "mobile.share_extension.cancel": "キャンセル", "mobile.share_extension.channel": "チャンネル", + "mobile.share_extension.error_close": "閉じる", + "mobile.share_extension.error_message": "共有の拡張機能を使用する際にエラーが発生しました。", + "mobile.share_extension.error_title": "拡張機能エラー", "mobile.share_extension.send": "送信する", "mobile.share_extension.team": "チーム", "mobile.suggestion.members": "メンバー", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "メンバーを検索し追加します", "navbar.addMembers": "メンバーを追加する", "navbar.click": "ここをクリックしてください", + "navbar.clickToAddHeader": "追加する {clickHere}", "navbar.delete": "チャンネルを削除する", "navbar.leave": "チャンネルから脱退する", "navbar.manageMembers": "メンバーを管理する", - "navbar.noHeader": "チャンネルヘッダーはまだありません。{newline}{link}を追加します。", + "navbar.noHeader": "チャンネルヘッダーはありません。", "navbar.preferences": "通知の設定", "navbar.rename": "チャンネル名を変更する…", "navbar.setHeader": "チャンネルヘッダーを設定する…", @@ -2575,7 +2578,7 @@ "sidebar.otherMembers": "このチームの外側", "sidebar.pg": "非公開チャンネル", "sidebar.removeList": "一覧から削除する", - "sidebar.tutorialScreen1": "

チャンネル

チャンネルは様々な話題についての会話を扱います。チャンネルはあなたのチームの全員が読み書き可能です。個人的なコミュニケーションを行う場合、特定の一人との場合にはダイレクトメッセージを、複数の人との場合には非公開チャンネルを使用してください。

", + "sidebar.tutorialScreen1": "

チャンネル

チャンネルは様々な話題についての会話を扱います。チャンネルはあなたのチームの全員が読み書き可能です。非公開の会話を行う場合、特定の一人との場合にはダイレクトメッセージを、複数の人との場合には非公開チャンネルを使用してください。

", "sidebar.tutorialScreen2": "

\"{townsquare}\"と\"{offtopic}\"チャンネル

以下は最初にふさわしい2つの公開チャンネルです

{townsquare}は、チーム内のコミュニケーションのための場所です、あなたのチームの全員が参加しています。

{offtopic}は仕事と関係のない楽しみとユーモアのための場所です。あなたとチームは、他のチャンネルを作るか決めることができます。

", "sidebar.tutorialScreen3": "

チャンネルの作成と参加

「もっと…」をクリックすることで新しいチャンネルを作成したり既存のチャンネルに参加することができます。

公開/非公開チャンネルのヘッダーの隣にある「+」記号をクリックすることで、新しいチャンネルを作成することができます。

", "sidebar.unreadSection": "未読", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " インポート失敗: ", "team_import_tab.import": "インポートする", "team_import_tab.importHelpDocsLink": "説明文書", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Advanced Exporter", "team_import_tab.importHelpLine1": "MattermostのSlackインポート機能はSlackチームの公開チャンネルにある発言のインポートをサポートしています。", "team_import_tab.importHelpLine2": "Slackからチームをインポートするには、{exportInstructions}へ移動してください。詳しくは {uploadDocsLink} を参照してください。", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "CTRL + ENTER でメッセージを投稿する", "user.settings.advance.slashCmd_autocmp": "スラッシュコマンドの自動補完をするために外部のアプリケーションを有効にする", "user.settings.advance.title": "詳細の設定", - "user.settings.advance.webrtc_preview": "1対1のWebRTC通話をかけたり受けたりすることを可能にします", "user.settings.custom_theme.awayIndicator": "離席表示", "user.settings.custom_theme.buttonBg": "ボタンBG", "user.settings.custom_theme.buttonColor": "ボタンテキスト", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "有効にする", "user.settings.tokens.cancel": "キャンセル", "user.settings.tokens.clickToEdit": "パーソナルアクセストークンを管理するには'編集'をクリックしてください", + "user.settings.tokens.confirmCopyButton": "はい、トークンをコピーしました", + "user.settings.tokens.confirmCopyMessage": "下記のアクセストークンをコピーし、保存したことを確認してください。トークンは二度と表示できません!", + "user.settings.tokens.confirmCopyTitle": "トークンはコピーしましたか?", "user.settings.tokens.confirmCreateButton": "生成する", "user.settings.tokens.confirmCreateMessage": "システム管理者権限でパーソナルアクセストークンを生成しています。本当にこのトークンを生成してもよろしいですか?", "user.settings.tokens.confirmCreateTitle": "システム管理者パーソナルアクセストークンを生成する", @@ -3059,7 +3064,7 @@ "user.settings.tokens.confirmDeleteButton": "はい、削除します", "user.settings.tokens.confirmDeleteMessage": "このトークンを使った全ての統合機能がMattermost APIにアクセスできなくなります。

この操作はやり直すことができません。本当に {description}トークンを削除しますか?", "user.settings.tokens.confirmDeleteTitle": "トークンを削除しますか?", - "user.settings.tokens.copy": "以下のアクセストークンをコピーしてください。二度と確認することはできません!", + "user.settings.tokens.copy": "以下のアクセストークンをコピーしてください。トークンは二度と表示できません!", "user.settings.tokens.create": "新しいトークンを生成する", "user.settings.tokens.deactivate": "無効にする", "user.settings.tokens.deactivatedWarning": "(無効)", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "アクセストークン: ", "user.settings.tokens.tokenDesc": "トークンの説明: ", "user.settings.tokens.tokenId": "トークンID: ", + "user.settings.tokens.tokenLoading": "読み込み中です…", "user.settings.tokens.userAccessTokensNone": "パーソナルアクセストークンがありません。", "user_list.notFound": "ユーザーが見付かりません", "user_profile.account.editSettings": "アカウント設定を編集する", @@ -3086,6 +3092,7 @@ "view_image.loading": "読み込み中です ", "view_image_popover.download": "ダウンロードする", "view_image_popover.file": "{total, number}ファイル中{count, number}番目のファイル", + "view_image_popover.open": "開く", "view_image_popover.publicLink": "公開リンクを取得する", "web.footer.about": "Mattermostについて", "web.footer.help": "ヘルプ", diff --git a/assets/base/i18n/ko.json b/assets/base/i18n/ko.json index 4cf1f4e3d..c01d19da5 100644 --- a/assets/base/i18n/ko.json +++ b/assets/base/i18n/ko.json @@ -104,7 +104,7 @@ "add_incoming_webhook.name": "이름", "add_incoming_webhook.save": "저장", "add_incoming_webhook.url": "URL: {url}", - "add_incoming_webhook.username": "사용자명", + "add_incoming_webhook.username": "사용자 이름", "add_incoming_webhook.username.help": "Choose the username this integration will post as. Usernames can be up to 22 characters, and may contain lowercase letters, numbers and the symbols \"-\", \"_\", and \".\" .", "add_oauth_app.callbackUrls.help": "애플리케이션 승인을 수락하거나 거부한 후 서비스가 사용자를 리디렉트 했을 때, 승인 코드나 액세스 토큰을 처리할 리디렉션 URI 입니다. http:// 또는 https:// 로 시작하는 유효한 URL을 입력하세요.", "add_oauth_app.callbackUrlsRequired": "하나 이상의 콜백 URL이 필요합니다.", @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "사용자명으로 로그인하기: ", "admin.email.connectionSecurityTest": "연결 테스트", "admin.email.easHelp": "Learn more about compiling and deploying your own mobile apps from an Enterprise App Store.", - "admin.email.emailFail": "연결을 실패했습니다: {error}", "admin.email.emailSuccess": "No errors were reported while sending an email. Please check your inbox to make sure.", "admin.email.enableEmailBatching.clusterEnabled": "Email batching cannot be enabled when High Availability mode is enabled.", "admin.email.enableEmailBatching.siteURL": "Email batching cannot be enabled unless the SiteURL is configured in Configuration > SiteURL.", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "예시 \"mail\" or \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "이메일 속성:", "admin.ldap.enableDesc": "활성화하면, LDAP으로 접속 할 수 있습니다.", - "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from SAML during user login.", + "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.", "admin.ldap.enableSyncTitle": "Enable Synchronization with AD/LDAP:", "admin.ldap.enableTitle": "LDAP으로 접속을 허용:", "admin.ldap.firstnameAttrDesc": "(Optional) The attribute in the AD/LDAP server that will be used to populate the first name of users in Mattermost. When set, users will not be able to edit their first name, since it is synchronized with the LDAP server. When left blank, users can set their own first name in Account Settings.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "레플리카 DB 연결", "analytics.system.totalSessions": "전체 세션", "analytics.system.totalTeams": "전체 팀", - "analytics.system.totalUsers": "전체 사용자", + "analytics.system.totalUsers": "월간 활성 사용자", "analytics.system.totalWebsockets": "웹소켓 연결", "analytics.team.activeUsers": "활성 사용자 (글 작성 기준)", "analytics.team.newlyCreated": "신규 사용자", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "최근 활성 사용자", "analytics.team.title": "{team} 팀 통계", "analytics.team.totalPosts": "전체 글", - "analytics.team.totalUsers": "전체 사용자", + "analytics.team.totalUsers": "월간 활성 사용자", "api.channel.add_member.added": "{username}님이 {addedUsername}님을 채널에 초대했습니다.", "api.channel.delete_channel.archived": "{username}님이 채널을 얼렸습니다.", "api.channel.join_channel.post_and_forget": "{username}님이 채널에 들어왔습니다.", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "팀 선택", "mobile.share_extension.cancel": "취소", "mobile.share_extension.channel": "채널", + "mobile.share_extension.error_close": "닫기", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "보내기", "mobile.share_extension.team": "서비스 약관", "mobile.suggestion.members": "멤버", @@ -2300,8 +2302,8 @@ "more_direct_channels.directchannel.deactivated": "{displayname} - Deactivated", "more_direct_channels.directchannel.you": "{displayname} (you)", "more_direct_channels.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 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.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": "개인 메시지", "msg_typing.areTyping": "{users}, {last}(이)가 입력중입니다...", "msg_typing.isTyping": "{user}(이)가 입력중입니다...", @@ -2309,15 +2311,16 @@ "multiselect.add": "추가", "multiselect.go": "이동", "multiselect.list.notFound": "사용자를 찾을 수 없습니다 :(", - "multiselect.numPeopleRemaining": "Use ↑↓ to browse, ↵ to select. You can add {num, number} more {num, plural, one {person} other {people}}. ", + "multiselect.numPeopleRemaining": "↑↓키로 탐색하고, ↵키로 선택합니다. {num, number} 명 이상 {num, plural, one {person} other {people}}을 추가할 수 있습니다.", "multiselect.numRemaining": "{num, number}명 더 추가할 수 있습니다.", "multiselect.placeholder": "회원을 검색하고 추가하세요.", "navbar.addMembers": "회원 추가", "navbar.click": "클릭하기", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "채널 삭제", "navbar.leave": "채널 떠나기", "navbar.manageMembers": "회원 관리", - "navbar.noHeader": "채널 헤더가 없습니다.{newline}{link} to add one.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "알림 설정", "navbar.rename": "채널 이름 변경", "navbar.setHeader": "채널 헤더 설정", @@ -2486,7 +2489,7 @@ "search_item.jump": "바로가기", "search_results.noResults": "검색 결과가 없습니다. 다시 시도하세요.", "search_results.noResults.partialPhraseSuggestion": "문구의 일부분을 검색하려면(예: \"rea\", 를 검색하여 \"reach\" 또는 \"reaction\") 단어 앞 또는 뒤에 와일드카드 문자(*)를 붙여보세요.", - "search_results.noResults.stopWordsSuggestion": "Two letter searches and common words like \"this\", \"a\" and \"is\" won't appear in search results due to excessive results returned.", + "search_results.noResults.stopWordsSuggestion": "두 글자 검색이나 \"입니다\", \"습니다\" 같이 일반적인 단어는 과도한 결과를 반환하기 때문에 검색결과에 표시되지 않습니다.", "search_results.searching": "Searching...", "search_results.usage.dataRetention": "Only messages posted in the last {days} days are returned. Contact your System Administrator for more detail.", "search_results.usage.fromInSuggestion": "Use {fromUser} to find posts from specific users and {inChannel} to find posts in specific channels", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " 가져오기 실패: ", "team_import_tab.import": "가져오기", "team_import_tab.importHelpDocsLink": "문서", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Advanced Exporter", "team_import_tab.importHelpLine1": "Slack import to Mattermost supports importing of messages in your Slack team's public channels.", "team_import_tab.importHelpLine2": "To import a team from Slack, go to {exportInstructions}. See {uploadDocsLink} to learn more.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Ctrl + Enter로 메시지 보내기", "user.settings.advance.slashCmd_autocmp": "외부 어플리케이션을 활성화하면 슬래시 명령어 자동 완성을 제안할 수 있습니다", "user.settings.advance.title": "고급 설정", - "user.settings.advance.webrtc_preview": "Enable the ability to make and receive one-on-one WebRTC calls", "user.settings.custom_theme.awayIndicator": "Away Indicator", "user.settings.custom_theme.buttonBg": "Button BG", "user.settings.custom_theme.buttonColor": "Button Text", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "활성화", "user.settings.tokens.cancel": "취소", "user.settings.tokens.clickToEdit": "'편집'을 클릭해 개인 액세스 토큰을 관리하세요", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "네, 생성합니다", "user.settings.tokens.confirmCreateMessage": "시스템 어드민 권한으로 개인 액세스 토큰을 생성중입니다. 이 토큰을 만드시겠습니까?", "user.settings.tokens.confirmCreateTitle": "시스템 어드민 권한으로 개인 액세스 토큰 생성", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Access Token: ", "user.settings.tokens.tokenDesc": "토큰 설명: ", "user.settings.tokens.tokenId": "토큰 ID: ", + "user.settings.tokens.tokenLoading": "로딩 중...", "user.settings.tokens.userAccessTokensNone": "개인 액세스 토큰이 없습니다.", "user_list.notFound": "사용자를 찾을 수 없습니다 :(", "user_profile.account.editSettings": "계정 설정", @@ -3086,6 +3092,7 @@ "view_image.loading": "로딩 중 ", "view_image_popover.download": "다운로드", "view_image_popover.file": "File {count, number} of {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "공개 링크 보기", "web.footer.about": "알아보기", "web.footer.help": "도움말", diff --git a/assets/base/i18n/nl.json b/assets/base/i18n/nl.json index e36a8e431..a4510bde0 100644 --- a/assets/base/i18n/nl.json +++ b/assets/base/i18n/nl.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Inschakelen van inloggen met gebruikersnaam: ", "admin.email.connectionSecurityTest": "Verbinding testen", "admin.email.easHelp": "Meer informatie over het maken en implementeren van uw eigen mobiele apps van een Enterprise App Store.", - "admin.email.emailFail": "Verbinding was niet succesvol: {error}", "admin.email.emailSuccess": "Het versturen van een e-mail lijkt foutloos verlopen. Controleer de mail ter bevestiging.", "admin.email.enableEmailBatching.clusterEnabled": "Bulk email kan niet worden aangezet als de High Availability modus aan staat.", "admin.email.enableEmailBatching.siteURL": "Niet mogelijk om bulk email aan te zetten als de SiteURL niet is ingevuld in Configuratie > SiteURL.", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Bijv.: \"mail\" of \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Email attribuut:", "admin.ldap.enableDesc": "Wanneer 'waar', kunt u in Mattermost inloggen met behulp van AD/LDAP", - "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from SAML during user login.", + "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.", "admin.ldap.enableSyncTitle": "Enable Synchronization with AD/LDAP:", "admin.ldap.enableTitle": "Inschakelen van inloggen met AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Optional) The attribute in the AD/LDAP server that will be used to populate the first name of users in Mattermost. When set, users will not be able to edit their first name, since it is synchronized with the LDAP server. When left blank, users can set their own first name in Account Settings.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Replica DB Conns", "analytics.system.totalSessions": "Totaal aantal sessies", "analytics.system.totalTeams": "Totaal aantal teams", - "analytics.system.totalUsers": "Totaal aantal gebruikers", + "analytics.system.totalUsers": "Total Active Users", "analytics.system.totalWebsockets": "WebSocket Conns", "analytics.team.activeUsers": "Actieve gebruikers met berichten", "analytics.team.newlyCreated": "Nieuw gemaakte gebruikers", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Recent actieve gebruikers", "analytics.team.title": "Team statistieken voor {team}", "analytics.team.totalPosts": "Totaal aantal berichten", - "analytics.team.totalUsers": "Totaal aantal gebruikers", + "analytics.team.totalUsers": "Total Active Users", "api.channel.add_member.added": "{addedUsername} added to the channel by {username}.", "api.channel.delete_channel.archived": "{username} archived the channel.", "api.channel.join_channel.post_and_forget": "{username} joined the channel.", @@ -1770,7 +1769,7 @@ "help.formatting.syntax": "### Syntax Highlighting\n\nTo add syntax highlighting, type the language to be highlighted after the ``` at the beginning of the code block. Mattermost also offers four different code themes (GitHub, Solarized Dark, Solarized Light, Monokai) that can be changed in **Account Settings** > **Display** > **Theme** > **Custom Theme** > **Center Channel Styles**", "help.formatting.syntaxEx": " package main\n import \"fmt\"\n func main() {\n fmt.Println(\"Hello, 世界\")\n }", "help.formatting.tableExample": "| Links-Uitgelijnd | Midden Uitgelijnd | Rechts Uitgelijnd |\n| :------------ |:---------------:| -----:|\n| Linker kolom 1 | deze tekst | $100 |\n| Linker kolom 2 | is | $10 |\n| Linker kolom 3 | gecentreerd | $1 |", - "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don’t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", + "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don't need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", "help.formatting.title": "# Formateren van Tekst\n _____", "help.learnMore": "Meer te weten komen over:", "help.link.attaching": "Bestanden Bijvoegen", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Team Selectie", "mobile.share_extension.cancel": "Annuleren", "mobile.share_extension.channel": "Kanaal", + "mobile.share_extension.error_close": "Afsluiten", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Verzenden", "mobile.share_extension.team": "Termen", "mobile.suggestion.members": " Leden", @@ -2300,8 +2302,8 @@ "more_direct_channels.directchannel.deactivated": "{displayname} - Deactivated", "more_direct_channels.directchannel.you": "{displayname} (jij)", "more_direct_channels.message": "Bericht", - "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.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": "Privé bericht", "msg_typing.areTyping": "{users} en {last} zijn aan het typen...", "msg_typing.isTyping": "{user} typt...", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Search and add members", "navbar.addMembers": "Leden toevoegen", "navbar.click": "Klik hier", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Verwijder kanaal...", "navbar.leave": "Verlaat kanaal", "navbar.manageMembers": "Leden beheren", - "navbar.noHeader": "Nog geen kanaalkoptekst.{newline}{link} om er een toe te voegen.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Meldings-voorkeuren", "navbar.rename": "Hernoem kanaal...", "navbar.setHeader": "Stel kanaalkoptekst in...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Importeren mislukt: ", "team_import_tab.import": "Importeer", "team_import_tab.importHelpDocsLink": "documentatie", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Advanced Exporter", "team_import_tab.importHelpLine1": "Slack import to Mattermost supports importing of messages in your Slack team's public channels.", "team_import_tab.importHelpLine2": "To import a team from Slack, go to {exportInstructions}. See {uploadDocsLink} to learn more.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Stuur berichten wanner u op CTRL + ENTER drukt", "user.settings.advance.slashCmd_autocmp": "Aanzetten van externe applicatie om slash commando autocomplete te gebruiken", "user.settings.advance.title": "Geavanceerde instellingen", - "user.settings.advance.webrtc_preview": "Enable the ability to make and receive one-on-one WebRTC calls", "user.settings.custom_theme.awayIndicator": "Weg Indicator", "user.settings.custom_theme.buttonBg": "Knop achtergrond", "user.settings.custom_theme.buttonColor": "Knoptekst", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Activate", "user.settings.tokens.cancel": "Annuleren", "user.settings.tokens.clickToEdit": "Click 'Edit' to manage your personal access tokens", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Yes, Create", "user.settings.tokens.confirmCreateMessage": "You are generating a personal access token with System Admin permissions. Are you sure want to create this token?", "user.settings.tokens.confirmCreateTitle": "Create System Admin Personal Access Token", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Access Token: ", "user.settings.tokens.tokenDesc": "Site Omschrijving: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Laden...", "user.settings.tokens.userAccessTokensNone": "No personal access tokens.", "user_list.notFound": "Geen gebruikers gevonden", "user_profile.account.editSettings": "Account-instellingen", @@ -3086,6 +3092,7 @@ "view_image.loading": "Bezig met laden ", "view_image_popover.download": "Downloaden", "view_image_popover.file": "File {count, number} of {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Openbare link ophalen", "web.footer.about": "Over", "web.footer.help": "Help", diff --git a/assets/base/i18n/pl.json b/assets/base/i18n/pl.json index 716da3604..0ebb6c222 100644 --- a/assets/base/i18n/pl.json +++ b/assets/base/i18n/pl.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Włącz logowanie za pomocą nazwy użytkownika:", "admin.email.connectionSecurityTest": "Sprawdź połączenie", "admin.email.easHelp": "Dowiedz się więcej o kompilacji i wdrożeniu swoich własnych aplikacji mobilnych w Enterprise App Store.", - "admin.email.emailFail": "Połączenie nieudane: {error}", "admin.email.emailSuccess": "Podczas wysyłania poczty nie zostały zgłoszone żadne błędy. Dla pewności proszę sprawdzić skrzynkę pocztową.", "admin.email.enableEmailBatching.clusterEnabled": "Kolejkowanie maili nie może zostać włączone gdy tryb wysokiej dostępności jest uruchomiony.", "admin.email.enableEmailBatching.siteURL": "Kolejkowanie e-maili nie może być włączone, jeśli adres URL strony nie jest ustawiany w Konfiguracja > Adres URL strony.", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Np. \"mail\" lub \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Atrybut Email:", "admin.ldap.enableDesc": "Jeśli włączone, Mattermost umożliwi logowanie za pomocą AD/LDAP", - "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from SAML during user login.", + "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.", "admin.ldap.enableSyncTitle": "Enable Synchronization with AD/LDAP:", "admin.ldap.enableTitle": "Włącz logowanie za pomocą AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Opcjonalne) Atrybut na serwerze AD/LDAP, kóry będzie używany do wypełniania pierwszego imienia użytkowników w Mattermost. Jeśli włączone, użytkownicy nie będą mogli zmienić swoich imion, gdyż będą one synchronizowane z serwerem LDAP. Jeśli zostawiony puste, użytkownicy będą mogli sami wpisać swoje imię w Ustawieniach Użytkownika.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Połączenia z bazą danych Replica", "analytics.system.totalSessions": "Wszystkie Sesje", "analytics.system.totalTeams": "Wszystkie Zespoły", - "analytics.system.totalUsers": "Użytkownicy razem", + "analytics.system.totalUsers": "Miesięczna Aktywność Użytkowników", "analytics.system.totalWebsockets": "Połączenia WebSocket", "analytics.team.activeUsers": "Aktywni użytkownicy z wiadomościami", "analytics.team.newlyCreated": "Nowi użytkownicy", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Ostatnio Aktywni Użytkownicy", "analytics.team.title": "Statystyki zespołu dla {team}", "analytics.team.totalPosts": "Wiadomości razem", - "analytics.team.totalUsers": "Użytkownicy razem", + "analytics.team.totalUsers": "Miesięczna Aktywność Użytkowników", "api.channel.add_member.added": "{addedUsername} dodany do kanału przez {username}", "api.channel.delete_channel.archived": "{username} zarchiwizował kanał.", "api.channel.join_channel.post_and_forget": "{username} dołączył do kanału.", @@ -1770,7 +1769,7 @@ "help.formatting.syntax": "### Syntax Highlighting\n\nTo add syntax highlighting, type the language to be highlighted after the ``` at the beginning of the code block. Mattermost also offers four different code themes (GitHub, Solarized Dark, Solarized Light, Monokai) that can be changed in **Account Settings** > **Display** > **Theme** > **Custom Theme** > **Center Channel Styles**", "help.formatting.syntaxEx": " package main\n import \"fmt\"\n func main() {\n fmt.Println(\"Hello, 世界\")\n }", "help.formatting.tableExample": "| Wyrównaj do lewej | Wyśrodkowanie | Wyrównaj do prawej |\n| :------------ |:---------------:| -----:|\n| Lewa kolumna 1 | ten tekst | $100 |\n| Lewa kolumna 2 | jest | $10 |\n| Lewa kolumna 3 | wyśrodkowany | $1 |", - "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don’t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", + "help.formatting.tables": "## Tables\n\nCreate a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don't need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row.", "help.formatting.title": "# Formatowanie tekstu\n_____", "help.learnMore": "Dowiedz się więcej:", "help.link.attaching": "Załączanie plików", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Wybór zespołu", "mobile.share_extension.cancel": "Anuluj", "mobile.share_extension.channel": "Kanał", + "mobile.share_extension.error_close": "Zamknij", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Wyślij", "mobile.share_extension.team": "Zespoły", "mobile.suggestion.members": "Użytkownicy", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Wyszukiwanie i dodawanie użytkowników", "navbar.addMembers": "Dodaj użytkowników", "navbar.click": "Kliknij tutaj", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Usuwanie kanału...", "navbar.leave": "Opuść kanał", "navbar.manageMembers": "Zarządzaj użyttkownikami", - "navbar.noHeader": "Nie ma jeszcze nagłówka kanału.{newline}{link} aby go dodać.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Ustawienia powiadomień", "navbar.rename": "Zmiana nazwy kanału", "navbar.setHeader": "Ustaw nagłówek kanału...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Błąd w trakcie importu: ", "team_import_tab.import": "Zaimportuj", "team_import_tab.importHelpDocsLink": "dokumentacja", - "team_import_tab.importHelpExportInstructions": "Slack > Ustawienia zespołu > Import/Export danych > Export > Export statystyk", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Zaawansowany eksporter z Slack", "team_import_tab.importHelpLine1": "Import z Slack w Mattermost obsługuje importowanie wiadomości z twoich publicznych kanałów zespołów Slack.", "team_import_tab.importHelpLine2": "Aby zaimportować zespół ze Slack, przejdź do {exportInstructions}. Zobacz {uploadDocsLink}, aby dowiedzieć się więcej.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Wysyłaj wiadomość przy użyciu Ctrl+Enter", "user.settings.advance.slashCmd_autocmp": "Włącz zewnętrzną aplikację, aby zaoferować autouzupełnianie poleceń", "user.settings.advance.title": "Zaawansowane ustawienia", - "user.settings.advance.webrtc_preview": "Włącz możliwość tworzenia i odbierania połączeń WebRTC", "user.settings.custom_theme.awayIndicator": "Wskaźnik obecności", "user.settings.custom_theme.buttonBg": "Tło przycisku", "user.settings.custom_theme.buttonColor": "Tekst przycisku", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Aktywuj", "user.settings.tokens.cancel": "Anuluj", "user.settings.tokens.clickToEdit": "Click 'Edit' to manage your personal access tokens", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Yes, Create", "user.settings.tokens.confirmCreateMessage": "You are generating a personal access token with System Admin permissions. Are you sure want to create this token?", "user.settings.tokens.confirmCreateTitle": "Utwórz osobisty token dostępny administratora systemu", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Access Token: ", "user.settings.tokens.tokenDesc": "Opis strony: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Ładowanie...", "user.settings.tokens.userAccessTokensNone": "Brak osobistych tokenów dostępu.", "user_list.notFound": "Nie odnaleziono użytkowników", "user_profile.account.editSettings": "Ustawienia konta", @@ -3086,6 +3092,7 @@ "view_image.loading": "Wczytywanie ", "view_image_popover.download": "Pobierz", "view_image_popover.file": "Plik {count, number} z {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Pobierz adres publiczny", "web.footer.about": "O", "web.footer.help": "Pomoc", diff --git a/assets/base/i18n/pt-BR.json b/assets/base/i18n/pt-BR.json index 2e1652c2c..3ce2456cd 100644 --- a/assets/base/i18n/pt-BR.json +++ b/assets/base/i18n/pt-BR.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Habilitar login com nome de usuário:", "admin.email.connectionSecurityTest": "Testar Conexão", "admin.email.easHelp": "Leia mais sobre compilar e publicar seu próprio aplicativo móvel em Enterprise App Store.", - "admin.email.emailFail": "Conexão falhou: {error}", "admin.email.emailSuccess": "Nenhum erro foram relatados durante o envio de um e-mail. Por favor verifique a sua caixa de entrada para se certificar.", "admin.email.enableEmailBatching.clusterEnabled": "Email em lote não pode ser ativado quando modo de Alta Disponibilidade está ativo.", "admin.email.enableEmailBatching.siteURL": "Email em lote não pode ser ativo a menos que o SiteURL estiver configurado em Configurações > SiteURL.", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Ex.: \"mail\" ou \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Atributo de E-mail:", "admin.ldap.enableDesc": "Quando verdadeiro, Mattermost permite login utilizando AD/LDAP", - "admin.ldap.enableSyncDesc": "Quando verdadeiro, Mattermost irá periodicamente sincronizar os usuários do AD/LDAP. Quando falso, os atributos dos usuários são atualizando do SAML quando o usuário fizer o login.", + "admin.ldap.enableSyncDesc": "Quando verdadeiro, Mattermost irá periodicamente sincronizar os usuários do AD/LDAP. Quando falso, os atributos dos usuários são atualizando do AD/LDAP quando o usuário fizer o login.", "admin.ldap.enableSyncTitle": "Ativar Sincronização com AD/LDAP:", "admin.ldap.enableTitle": "Ativar login with AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Opcional) O atributo no servidor AD/LDAP que será usado para preencher o primeiro nome dos usuários no Mattermost. Quando definido, os usuários não serão capazes de editar o seu primeiro nome, uma vez que é sincronizado com o servidor LDAP. Quando deixado em branco, os usuários poderão definir seu próprio primeiro nome em Configurações de Conta.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Replica DB Conns", "analytics.system.totalSessions": "Total de Sessões", "analytics.system.totalTeams": "Total de Equipes", - "analytics.system.totalUsers": "Total de Usuários", + "analytics.system.totalUsers": "Total Usuários Ativos", "analytics.system.totalWebsockets": "Conexão Websocket", "analytics.team.activeUsers": "Usuários Ativos Com Posts", "analytics.team.newlyCreated": "Novos Usuários Criados", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Usuários Ativos Recentes", "analytics.team.title": "Estatísticas de Equipe para {team}", "analytics.team.totalPosts": "Total Posts", - "analytics.team.totalUsers": "Total de Usuários", + "analytics.team.totalUsers": "Total Usuários Ativos", "api.channel.add_member.added": "{addedUsername} foi adicionado ao canal por {username}.", "api.channel.delete_channel.archived": "{username} arquivou o canal.", "api.channel.join_channel.post_and_forget": "{username} juntou-se ao canal.", @@ -2110,7 +2109,7 @@ "mobile.extension.posting": "Postando...", "mobile.extension.title": "Compartilhar no Mattermost", "mobile.failed_network_action.description": "There seems to be a problem with your internet connection. Make sure you have an active connection and try again.", - "mobile.failed_network_action.retry": "Tentar novamente", + "mobile.failed_network_action.retry": "Tentar Novamente", "mobile.failed_network_action.title": "Sem conexão com a internet", "mobile.file_upload.camera": "Tirar Foto ou Vídeo", "mobile.file_upload.library": "Biblioteca de Fotos", @@ -2118,7 +2117,7 @@ "mobile.file_upload.more": "Mais", "mobile.file_upload.video": "Galeria de Videos", "mobile.flagged_posts.empty_description": "As bandeiras são uma forma de marcar as mensagens para segui-la. Suas bandeiras são pessoais, e não podem ser vistas por outros usuários.", - "mobile.flagged_posts.empty_title": "Posts Marcados", + "mobile.flagged_posts.empty_title": "Nenhum Post Marcado", "mobile.help.title": "Ajuda", "mobile.image_preview.deleted_post_message": "Esta mensagem e seus arquivos foram excluídos. O visualizador será fechado.", "mobile.image_preview.deleted_post_title": "Mensagem Deletada", @@ -2206,7 +2205,7 @@ "mobile.post_textbox.uploadFailedTitle": "Falha no anexo", "mobile.posts_view.moreMsg": "Acima Mais Mensagens Novas", "mobile.recent_mentions.empty_description": "Messages containing your username and other words that trigger mentions will appear here.", - "mobile.recent_mentions.empty_title": "Menções Recentes", + "mobile.recent_mentions.empty_title": "Sem Menções Recentes", "mobile.rename_channel.display_name_maxLength": "Nome do canal precisa ter menos de {maxLength, number} caracteres", "mobile.rename_channel.display_name_minLength": "Nome do canal deve ter {minLength, number} caracteres ou mais", "mobile.rename_channel.display_name_required": "Nome do canal é obrigatório", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Seleção da Equipe", "mobile.share_extension.cancel": "Cancelar", "mobile.share_extension.channel": "Canal", + "mobile.share_extension.error_close": "Fechar", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Enviar", "mobile.share_extension.team": "Equipes", "mobile.suggestion.members": "Membros", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Procura e adiciona membros", "navbar.addMembers": "Adicionar Membros", "navbar.click": "Clique aqui", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Deletar Canal...", "navbar.leave": "Deixar o Canal", "navbar.manageMembers": "Gerenciar Membros", - "navbar.noHeader": "Sem cabeçalho de canal.{newline}{link} adicionar um.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Preferências de Notificação", "navbar.rename": "Renomear Canal...", "navbar.setHeader": "Definir Cabeçalho do Canal...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Falha na importação: ", "team_import_tab.import": "Importar", "team_import_tab.importHelpDocsLink": "documentação", - "team_import_tab.importHelpExportInstructions": "Slack > Configurações de Equipe > Importar/Exportar Dados > Exportar > Iniciar Exportação", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Exportador Avançado Slack", "team_import_tab.importHelpLine1": "Importação Slack para Mattermost suporta a importação de mensagens nos canais públicos da sua equipe Slack.", "team_import_tab.importHelpLine2": "Para importar uma equipe do Slack, vá para {exportInstructions}. Veja {uploadDocsLink} para saber mais.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Enviar mensagens com CTRL+ENTER", "user.settings.advance.slashCmd_autocmp": "Ativar aplicação externa para autocompletar comandos slash", "user.settings.advance.title": "Configurações Avançadas", - "user.settings.advance.webrtc_preview": "Ativar a capacidade de fazer e receber chamadas WebRTC um-pra-um", "user.settings.custom_theme.awayIndicator": "Indicador de Afastamento", "user.settings.custom_theme.buttonBg": "Fundo Botão", "user.settings.custom_theme.buttonColor": "Texto do Botão", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Ativar", "user.settings.tokens.cancel": "Cancelar", "user.settings.tokens.clickToEdit": "Clique 'Editar' para gerenciar seus tokens de acesso individual", + "user.settings.tokens.confirmCopyButton": "Sim, Eu copiei o token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Você copiou seu token?", "user.settings.tokens.confirmCreateButton": "Sim, Criar", "user.settings.tokens.confirmCreateMessage": "Você está gerando um token de acesso individual com permissões de Administrador do Sistema. Tem certeza de que deseja criar esse token?", "user.settings.tokens.confirmCreateTitle": "Criar Token de Acesso Individual Administrador do Sistema", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Token de Acesso: ", "user.settings.tokens.tokenDesc": "Descrição Token: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Carregando...", "user.settings.tokens.userAccessTokensNone": "Não há tokens de acesso pessoais.", "user_list.notFound": "Nenhum usuário encontrado", "user_profile.account.editSettings": "Editar Definições de Conta", @@ -3086,6 +3092,7 @@ "view_image.loading": "Carregando ", "view_image_popover.download": "Download", "view_image_popover.file": "Arquivo {count, number} de {total, number}", + "view_image_popover.open": "Abrir", "view_image_popover.publicLink": "Obter O Link Público", "web.footer.about": "Sobre", "web.footer.help": "Ajuda", diff --git a/assets/base/i18n/ru.json b/assets/base/i18n/ru.json index 494e84afe..ba5f707b8 100644 --- a/assets/base/i18n/ru.json +++ b/assets/base/i18n/ru.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Разрешить вход с помощью имени пользователя: ", "admin.email.connectionSecurityTest": "Проверка подключения", "admin.email.easHelp": "Узнать больше о компиляции и развёртывании ваших собственных мобильных приложений здесь Enterprise App Store.", - "admin.email.emailFail": "Соединение завершено неудачей: {error}", "admin.email.emailSuccess": "При отправке письма не замечено никаких ошибок. Пожалуйста, проверьте свою входящую почту, чтобы убедиться.", "admin.email.enableEmailBatching.clusterEnabled": "Почтовые объединения нельзя использовать в режиме высокой доступности.", "admin.email.enableEmailBatching.siteURL": "Почтовые объединения не могут быть включены, сначала нужно настроить URL сайта в Настройки > SiteURL.", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "Например: \"mail\" или \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "Атрибут электронной почты:", "admin.ldap.enableDesc": "Когда активировано, то Mattermost позволяет авторизоваться используя AD/LDAP", - "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from SAML during user login.", + "admin.ldap.enableSyncDesc": "When true, Mattermost periodically synchronizes users from AD/LDAP. When false, user attributes are updated from AD/LDAP during user login only.", "admin.ldap.enableSyncTitle": "Включить синхронизацию с AD/LDAP:", "admin.ldap.enableTitle": "Включить авторизацию с помощью AD/LDAP:", "admin.ldap.firstnameAttrDesc": "(Необязательно) Атрибут на сервере AD/LDAP, который будет использоваться для заполнения имени пользователей в Mattermost. Если он установлен, то пользователи не смогут редактировать свои имя, т.к. оно будет синхронизироваться с сервером AD/LDAP. Если атрибут не заполнен, то пользователи смогут изменить свои имена в настройках учетной записи.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Подключений к реплике БД", "analytics.system.totalSessions": "Всего сессий", "analytics.system.totalTeams": "Всего команд", - "analytics.system.totalUsers": "Всего пользователей", + "analytics.system.totalUsers": "Активность пользователей за месяц", "analytics.system.totalWebsockets": "Соединений Websocket", "analytics.team.activeUsers": "Активные пользователи с сообщениями", "analytics.team.newlyCreated": "Новые пользователи", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Недавние активные пользователи", "analytics.team.title": "Статистика команды {team}", "analytics.team.totalPosts": "Всего сообщений", - "analytics.team.totalUsers": "Всего пользователей", + "analytics.team.totalUsers": "Активность пользователей за месяц", "api.channel.add_member.added": "{addedUsername} добавлен в канал участником {username}", "api.channel.delete_channel.archived": "{username} произвёл архивирование канала.", "api.channel.join_channel.post_and_forget": "{username} присоединился к каналу.", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Выбор команды", "mobile.share_extension.cancel": "Отмена", "mobile.share_extension.channel": "Канал", + "mobile.share_extension.error_close": "Закрыть", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Отправить", "mobile.share_extension.team": "Команды", "mobile.suggestion.members": "Участники", @@ -2285,9 +2287,9 @@ "modal.manaul_status.title_dnd": "Your status is set to \"Do Not Disturb\"", "modal.manaul_status.title_offline": "Ваш статус установлен в \"Оффлайн\"", "modal.manual_status.cancel_": "Нет, оставьте статус \"{status}\"", - "modal.manual_status.cancel_away": "No, keep it as \"Away\"", - "modal.manual_status.cancel_dnd": "No, keep it as \"Do Not Disturb\"", - "modal.manual_status.cancel_offline": "No, keep it as \"Offline\"", + "modal.manual_status.cancel_away": "Нет, оставить статус \"Отошёл\"", + "modal.manual_status.cancel_dnd": "Нет, оставить статус \"Не беспокоить\"", + "modal.manual_status.cancel_offline": "Нет, оставить статус \"Не в сети\"", "more_channels.close": "Закрыть", "more_channels.create": "Создать новый канал", "more_channels.createClick": "Нажмите 'Создать Новый Канал' для создания нового канала", @@ -2300,8 +2302,8 @@ "more_direct_channels.directchannel.deactivated": "{displayname} - Deactivated", "more_direct_channels.directchannel.you": "{displayname} (you)", "more_direct_channels.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 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.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": "Личные сообщения", "msg_typing.areTyping": "{users} и {last} печатают...", "msg_typing.isTyping": "{user} печатает...", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Найти и добавить участников", "navbar.addMembers": "Добавить участников", "navbar.click": "Щелкните здесь", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Удалить канал...", "navbar.leave": "Покинуть Канал", "navbar.manageMembers": "Управление участниками", - "navbar.noHeader": "У канала нет заголовка.{newline}Нажмите {link}, чтобы добавить.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Настройки уведомлений", "navbar.rename": "Переименовать канал...", "navbar.setHeader": "Заголовок канала...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Ошибка импорта: ", "team_import_tab.import": "Импорт", "team_import_tab.importHelpDocsLink": "документация", - "team_import_tab.importHelpExportInstructions": "Slack > Настройки команды > Импорт/Экспорт данных > Экспорт > Начать экспорт", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Продвинутый экспортер Slack", "team_import_tab.importHelpLine1": "Импорт из Slack в Mattermost поддерживает импортирование сообщений из Ваших публичных каналов команд Slack.", "team_import_tab.importHelpLine2": "Для импорта команды из Slack перейдите сюда: {exportInstructions}. Более подробную информацию смотрите здесь: {uploadDocsLink}", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "Отправлять сообщения сочетанием клавиш CTRL+ENTER", "user.settings.advance.slashCmd_autocmp": "Включить внешнее приложение для реализации функции автодополнения слэш-команд", "user.settings.advance.title": "Дополнительные параметры", - "user.settings.advance.webrtc_preview": "Включить возможность совершать и принимать WebRTC звонки.", "user.settings.custom_theme.awayIndicator": "Индикатор отсутствия", "user.settings.custom_theme.buttonBg": "Фон кнопки", "user.settings.custom_theme.buttonColor": "Цвет кнопки", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Активировать", "user.settings.tokens.cancel": "Отмена", "user.settings.tokens.clickToEdit": "Click 'Edit' to manage your personal access tokens", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Да, создать", "user.settings.tokens.confirmCreateMessage": "You are generating a personal access token with System Admin permissions. Are you sure want to create this token?", "user.settings.tokens.confirmCreateTitle": "Create System Admin Personal Access Token", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Access Token: ", "user.settings.tokens.tokenDesc": "Описание токена: ", "user.settings.tokens.tokenId": "Token ID: ", + "user.settings.tokens.tokenLoading": "Загрузка...", "user.settings.tokens.userAccessTokensNone": "с токенами доступа", "user_list.notFound": "Пользователи не найдены", "user_profile.account.editSettings": "Учетная запись", @@ -3086,6 +3092,7 @@ "view_image.loading": "Загрузка ", "view_image_popover.download": "Скачать", "view_image_popover.file": "File {count, number} of {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Получить общедоступную ссылку", "web.footer.about": "О нас", "web.footer.help": "Помощь", diff --git a/assets/base/i18n/tr.json b/assets/base/i18n/tr.json index e3de32e02..c847cb021 100644 --- a/assets/base/i18n/tr.json +++ b/assets/base/i18n/tr.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "Kullanıcı adı ile oturum açılabilsin: ", "admin.email.connectionSecurityTest": "Bağlantıyı Sına", "admin.email.easHelp": "Kendi mobil uygulamalarınızı derlemek ve yayınlamak için Enterprise Uygulama Mağazasına bakın.", - "admin.email.emailFail": "Bağlantı kurulamadı: {error}", "admin.email.emailSuccess": "E-posta gönderilirken herhangi bir sorun bildirilmedi. Lütfen emin olmak için gelen kutunuza bakın.", "admin.email.enableEmailBatching.clusterEnabled": "Yüksek Erişilebilirlik kipi etkinken toplu e-posta özelliği etkinleştirilemez.", "admin.email.enableEmailBatching.siteURL": "Ayarlar > Site Adresi bölümünden site adresi ayarlanmadan toplu e-posta özelliği etkinleştirilemez.", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "Kopya Veritabanı Bağlantıları", "analytics.system.totalSessions": "Toplam Oturum", "analytics.system.totalTeams": "Toplam Takım", - "analytics.system.totalUsers": "Toplam Kullanıcı", + "analytics.system.totalUsers": "Aylık Etkin Kullanıcılar", "analytics.system.totalWebsockets": "WebSocket Bağlantıları", "analytics.team.activeUsers": "İleti Yazmış Etkin Kullanıcılar", "analytics.team.newlyCreated": "Yeni Eklenen Kullanıcılar", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "Son Etkin Kullanıcılar", "analytics.team.title": "{team} Takımının İstatistikleri", "analytics.team.totalPosts": "Toplam İleti", - "analytics.team.totalUsers": "Toplam Kullanıcı", + "analytics.team.totalUsers": "Aylık Etkin Kullanıcılar", "api.channel.add_member.added": "{addedUsername} kullanıcısı {username} tarafından kanala eklendi.", "api.channel.delete_channel.archived": "{username} kanalı arşivledi.", "api.channel.join_channel.post_and_forget": "{username} kanala katıldı.", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "Takım Seçimi", "mobile.share_extension.cancel": "İptal", "mobile.share_extension.channel": "Kanal", + "mobile.share_extension.error_close": "Kapat", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "Gönder", "mobile.share_extension.team": "Takım", "mobile.suggestion.members": "Üyeler", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "Üye arama ve ekleme", "navbar.addMembers": "Üye Ekle", "navbar.click": "Buraya tıklayın", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "Kanalı Sil...", "navbar.leave": "Kanaldan Ayrıl", "navbar.manageMembers": "Üye Yönetimi", - "navbar.noHeader": "Henüz bir kanal başlığı ayarlanmamış. Eklemek için {newline}{link}.", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "Bildirim Ayarları", "navbar.rename": "Kanalı Yeniden Adlandır...", "navbar.setHeader": "Kanal Başlığını Ayarla...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " Alınamadı: ", "team_import_tab.import": "İçe Aktar", "team_import_tab.importHelpDocsLink": "belgeler", - "team_import_tab.importHelpExportInstructions": "Slack > Takım Ayarları > İçe/Dışa Veri Aktarma > Dışa Aktar > Dışa Aktarmayı Başlat", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack Gelişmiş Dışa Aktarma", "team_import_tab.importHelpLine1": "Slack içe aktarma özelliği ile Slack takımının herkese açık kanalları Mattermost içine aktarılabilir.", "team_import_tab.importHelpLine2": "Slack üzerindeki bir takımı içe aktarmak için {exportInstructions} bölümüne bakın. Ayrıntılı bilgi almak için {uploadDocsLink} bölümüne bakın.", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "İletiler Ctrl-ENTER ile gönderilsin", "user.settings.advance.slashCmd_autocmp": "Dış uygulama bölü komutları için otomatik tamamlama önerilerinde bulunsun", "user.settings.advance.title": "Gelişmiş Ayarlar", - "user.settings.advance.webrtc_preview": "Bire bir WebRTC görüşmeleri için arama ve yanıtlama özelliği kullanılsın", "user.settings.custom_theme.awayIndicator": "Uzakta Göstergesi", "user.settings.custom_theme.buttonBg": "Düğme Art Alanı", "user.settings.custom_theme.buttonColor": "Düğme Metni", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "Etkinleştir", "user.settings.tokens.cancel": "İptal", "user.settings.tokens.clickToEdit": "Kişisel erişim kodlarınızı yönetmek için 'Düzenle' üzerine tıklayın", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "Evet, Oluştur", "user.settings.tokens.confirmCreateMessage": "Sistem Yöneticisi yetkileri ile bir kişisel erişim kodu üretiyorsunuz. Bu kodu oluşturmak istediğinize emin misiniz?", "user.settings.tokens.confirmCreateTitle": "Sistem Yöneticisi Kişisel Erişim Kodu Oluştur", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "Erişim Kodu: ", "user.settings.tokens.tokenDesc": "Kod Açıklaması: ", "user.settings.tokens.tokenId": "Erişim Kodu: ", + "user.settings.tokens.tokenLoading": "Yükleniyor...", "user.settings.tokens.userAccessTokensNone": "Herhangi bir kişisel erişim kodu yok.", "user_list.notFound": "Herhangi bir kullanıcı bulunamadı", "user_profile.account.editSettings": "Hesap Ayarlarını Düzenle", @@ -3086,6 +3092,7 @@ "view_image.loading": "Yükleniyor ", "view_image_popover.download": "İndir", "view_image_popover.file": "Dosya {count, number} / {total, number}", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "Herkese Açık Bağlantıyı Al", "web.footer.about": "Hakkında", "web.footer.help": "Yardım", diff --git a/assets/base/i18n/zh-CN.json b/assets/base/i18n/zh-CN.json index 02acd779f..2a36a4c14 100644 --- a/assets/base/i18n/zh-CN.json +++ b/assets/base/i18n/zh-CN.json @@ -172,13 +172,13 @@ "admin.client_versions.iosMinVersion": "最低的 IOS 版本", "admin.client_versions.iosMinVersionHelp": "最低兼容的 IOS 版本", "admin.cluster.ClusterName": "机群名:", - "admin.cluster.ClusterNameDesc": "The cluster to join by name. Only nodes with the same cluster name will join together. This is to support Blue-Green deployments or staging pointing to the same database.", + "admin.cluster.ClusterNameDesc": "根据名称加入机群。只有拥有同样的机群名的节点会互相加入。此功能用于支持蓝率部署或使用相同数据库预备环境。", "admin.cluster.ClusterNameEx": "例如:\"Production\" 或 \"Staging\"", "admin.cluster.GossipPort": "Gossip 端口:", "admin.cluster.GossipPortDesc": "gossip 协议的端口。此端口应该允许 UDP 和 TCP。", "admin.cluster.GossipPortEx": "例如: \"8074\"", "admin.cluster.OverrideHostname": "覆盖主机名:", - "admin.cluster.OverrideHostnameDesc": "The default value of will attempt to get the Hostname from the OS or use the IP Address. You can override the hostname of this server with this property. It is not recommended to override the Hostname unless needed. This property can also be set to a specific IP Address if needed.", + "admin.cluster.OverrideHostnameDesc": "默认值 将尝试从系统获取主机名或使用 IP 地址。您可以用此属性覆盖主机的主机名。在非必要下不推荐覆盖主机名。在需要下此属性也可以用于指定 IP 地址。", "admin.cluster.OverrideHostnameEx": "例如:\"app-server-01\"", "admin.cluster.ReadOnlyConfig": "只读配置:", "admin.cluster.ReadOnlyConfigDesc": "当设为是时,服务器将拒绝从系统控制台对配置文件的更改。建议在正式环境下开启。", @@ -186,7 +186,7 @@ "admin.cluster.StreamingPortDesc": "用在服务器之间数据流通讯的端口。", "admin.cluster.StreamingPortEx": "例如:\"8075\"", "admin.cluster.UseExperimentalGossip": "使用实验性质的 Gossip:", - "admin.cluster.UseExperimentalGossipDesc": "When true, the server will attempt to communicate via the gossip protocol over the gossip port. When false the server will attempt to communicate over the streaming port. When false the gossip port and protocol are still used to determine cluster health.", + "admin.cluster.UseExperimentalGossipDesc": "当设为是时,服务器将在 gossip 端口使用 gossip 协议通讯。当设为否时,服务器将尝试使用流端口通讯,gossip 端口和协议仍会被用来判断机群健康状态。", "admin.cluster.UseIpAddress": "使用 IP 地址:", "admin.cluster.UseIpAddressDesc": "当设为是时,机群将尝试用 IP 地址通讯而不是主机名。", "admin.cluster.enableDescription": "当设为是时,Mattermost 将以高可用性模式运行。请参考文档了解 Mattermost 的高可用性。", @@ -225,7 +225,7 @@ "admin.complianceExport.createJob.title": "立刻运行合规导出任务", "admin.complianceExport.description": "此功能支持合规导出到 Actiance XML 和 GlobalRelay EML 格式并目前处于 beta 状态。Mattermost CSV 格式预计在今后版本支持并会取代合规功能。", "admin.complianceExport.exportFormat.actiance": "Actiance XML", - "admin.complianceExport.exportFormat.description": "Format of the compliance export. Corresponds to the system that you want to import the data into.

For Actiance XML, compliance export files are written to the \"exports\" subdirectory of the configured Local Storage Directory. For Global Relay EML, they are emailed to the configured email address.", + "admin.complianceExport.exportFormat.description": "合规导出格式。对应您想导入数据到的系统。

Actiance XML 将导出文件写入到 本地储存目录 中的 \"exports\" 子目录。Global Relay EML 将发送到指定的电子邮件地址。", "admin.complianceExport.exportFormat.globalrelay": "GlobalRelay EML", "admin.complianceExport.exportFormat.title": "导出格式:", "admin.complianceExport.exportJobStartTime.description": "设置每日合规导出任务开始的时间。设置一个较少人使用的时间。必须为 24 小时制并格式为 HH:MM。", @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "开启使用用户名登入:", "admin.email.connectionSecurityTest": "测试连接", "admin.email.easHelp": "了解更多关于编译和部署您自己的移动应用程序从一个Enterprise App Store。", - "admin.email.emailFail": "连接失败: {error}", "admin.email.emailSuccess": "发送电子邮件时没有发生错误。请检查您的收件箱并确认。", "admin.email.enableEmailBatching.clusterEnabled": "批量电子邮件无法在高可用性下开启。", "admin.email.enableEmailBatching.siteURL": "设置 > 站点网址中的站点网址配置后才能开启批量电子邮件。", @@ -450,7 +449,7 @@ "admin.files.storage": "储存", "admin.general.configuration": "配置", "admin.general.localization": "本地化", - "admin.general.localization.availableLocalesDescription": "设置用户在帐号设置可用的语言(留空将可用所有语言)。如果您手动添加新语言,必须在保存钱先添加默认客户端语言

想要帮忙翻译吗?加入Mattermost 翻译服务器。", + "admin.general.localization.availableLocalesDescription": "设置用户在帐号设置可用的语言(留空将可用所有语言)。如果您手动添加新语言,必须在保存前先添加默认客户端语言

想要帮忙翻译吗?加入Mattermost 翻译服务器。", "admin.general.localization.availableLocalesNoResults": "未找到结果", "admin.general.localization.availableLocalesNotPresent": "默认客户端语言必须包含在可用列表里", "admin.general.localization.availableLocalesTitle": "可用的语言:", @@ -535,7 +534,7 @@ "admin.image.amazonS3EndpointDescription": "您的 S3 兼容储存提供商的主机名称。默认为 \"s3.amazonaws.com\"。", "admin.image.amazonS3EndpointExample": "例如:\"s3.amazonaws.com\"", "admin.image.amazonS3EndpointTitle": "亚马逊 S3 连接点:", - "admin.image.amazonS3IdDescription": "(Optional) Only required if you do not want to authenticate to S3 using an IAM role. Enter the Access Key ID provided by your Amazon EC2 administrator.", + "admin.image.amazonS3IdDescription": "(可选) 只有在您不想使用 IAM role 验证 S3。输入您的 Amazon EC2 管理提供的访问密钥 ID。", "admin.image.amazonS3IdExample": "例如 \"AKIADTOVBGERKLCBV\"", "admin.image.amazonS3IdTitle": "Amazon S3 访问密钥 ID:", "admin.image.amazonS3RegionDescription": "您创建 S3 储存桶时选择的 AWS 区域。如果没设定区域, Mattermost 将尝试从 AWS 获取适当的区域,如果没有找到则使用 'us-east-1'。", @@ -545,7 +544,7 @@ "admin.image.amazonS3SSETitle": "在亚马逊 S3 开启服务端加密:", "admin.image.amazonS3SSLDescription": "当设为否时,允许创建非安全连接到亚马逊 S3。默认只允许安全连接。", "admin.image.amazonS3SSLTitle": "开启安全亚马逊 S3 连接:", - "admin.image.amazonS3SecretDescription": "(Optional) The secret access key associated with your Amazon S3 Access Key ID.", + "admin.image.amazonS3SecretDescription": "(可选) 您的 Amazon S3 访问密钥 ID 对应的秘密访问密钥。", "admin.image.amazonS3SecretExample": "例如 \"jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY\"", "admin.image.amazonS3SecretTitle": "Amazon S3 秘密访问密钥:", "admin.image.amazonS3TraceDescription": "(开发模式) 当设为是时,系统日志将记录额外的调式信息。", @@ -601,7 +600,7 @@ "admin.ldap.emailAttrEx": "例如 \"mail\" 或 \"userPrincipalName\"", "admin.ldap.emailAttrTitle": "电子邮箱属性:", "admin.ldap.enableDesc": "当设置为是时,Mattermost 允许使用 AD/LDAP 登录", - "admin.ldap.enableSyncDesc": "当设为是时,Mattermost 定时从 AD/LDAP 同步用户。当设为否时,用户属性将在用户登入时从 SAML 更新。", + "admin.ldap.enableSyncDesc": "当设为是时,Mattermost 定时从 AD/LDAP 同步用户。当设为否时,用户属性将在用户登入时从 AD/LDAP 更新。", "admin.ldap.enableSyncTitle": "开启于AD/LDAP 同步:", "admin.ldap.enableTitle": "开启 AD/LDAP 登入:", "admin.ldap.firstnameAttrDesc": "(可选) AD/LDAP服务器中的属性用来填充 Mattermost 用户的名字。当设置后,用户将没法修改他们的名字,因为它时和 LDAP 服务器同步的。当留空时,用户可以在帐号设置里修改名字。", @@ -640,7 +639,7 @@ "admin.ldap.skipCertificateVerification": "跳过证书验证:", "admin.ldap.skipCertificateVerificationDesc": "跳过TLS或STARTTLS连接的证书验证。不建议用在需要TLS的正式环境下。仅限测试。", "admin.ldap.syncFailure": "同步失败:{error}", - "admin.ldap.syncIntervalHelpText": "AD/LDAP 的同步机制会将 Mattermost 中的用户信息同步以反映在 AD/LDAP 服务器上进行的更新。例如,当 AD/LDAP 服务器上一个用户姓名更改时,这一改变将在 Mattermost 同步执行。在 AD/LDAP 服务器中删除或禁用账户时将他们的 Mattermost 账号设置为\"停用\"并且吊销会话。Mattermost 会按照一定的时间频率定期进行同步。例如,如果设置为60,那么会在每 60 分钟进行同步。", + "admin.ldap.syncIntervalHelpText": "AD/LDAP 的同步机制会将 Mattermost 中的用户信息同步以反映在 AD/LDAP 服务器上进行的更新。例如,当 AD/LDAP 服务器上一个用户姓名更改时,这一改变将在 Mattermost 同步执行。在 AD/LDAP 服务器中删除或禁用账户时将他们的 Mattermost 账号设置为\"停用\"并且吊销会话。Mattermost 会按照一定的时间频率定期进行同步。例如,如果设置为 60,那么会在每 60 分钟进行同步。", "admin.ldap.syncIntervalTitle": "同步间隔(分钟):", "admin.ldap.syncNowHelpText": "立即启动一个 AD/LDAP 同步。", "admin.ldap.sync_button": "开始 AD/LDAP 同步", @@ -987,7 +986,7 @@ "admin.service.tlsKeyFileDescription": "使用的私钥文件。", "admin.service.useLetsEncrypt": "使用 Let's Encrypt:", "admin.service.useLetsEncryptDescription": "开启自动从 Let's Encrypt 获取证书。证书将在客户端尝试从新的域名连接时获取。此功能将可以在多域名使用。", - "admin.service.useLetsEncryptDescription.disabled": "Enable the automatic retrieval of certificates from Let's Encrypt. The certificate will be retrieved when a client attempts to connect from a new domain. This will work with multiple domains.

This setting cannot be enabled unless the Forward port 80 to 443 setting is set to true.", + "admin.service.useLetsEncryptDescription.disabled": "开启自动从 Let's Encrypt 获取证书。证书将在客户端尝试从新的域名连接时获取。此功能将可以在多域名使用。

此功能只有在映射端口 80 到 443设定开启时可开启。", "admin.service.userAccessTokensDescLabel": "名称:", "admin.service.userAccessTokensDescription": "当设为是时,用户可以在帐号设置 > 安全创建个人访问令牌。他们可以用来 API 验证并拥有完全帐号权限。

系统控制台 > 用户页面管理哪些用户可以创建个人访问令牌。", "admin.service.userAccessTokensIdLabel": "令牌 ID:", @@ -1126,7 +1125,7 @@ "admin.team.openServerTitle": "启用开放服务器:", "admin.team.restrictDescription": "团队和用户帐户只能从一个特定的域创建(例如: \"mattermost.org\")或逗号分隔域列表(例如: \"corp.mattermost.com, mattermost.org\")。", "admin.team.restrictDirectMessage": "允许用户私信的频道:", - "admin.team.restrictDirectMessageDesc": "'Any user on the Mattermost server' enables users to open a Direct Message channel with any user on the server, even if they are not on any teams together. 'Any member of the team' limits the ability in the Direct Messages 'More' menu to only open Direct Message channels with users who are in the same team.

Note: This setting only affects the UI, not permissions on the server.", + "admin.team.restrictDirectMessageDesc": "'任何 Mattermost 服务器上的用户' 将允许用户于任何人开启私信频道,就算他们不在同一个团队。'任何团队成员' 将限制私信中的 '更多' 菜单对同一个团队上的用户开启私信。

注:此设定仅影响界面并不影响服务器上的权限。", "admin.team.restrictExample": "例如 \"corp.mattermost.com, mattermost.org\"", "admin.team.restrictNameDesc": "当设置为是时,你不能以保留字如 www,admin,support,test,channel 等创建团队", "admin.team.restrictNameTitle": "限制团队名称:", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "复制数据库连接数", "analytics.system.totalSessions": "会话总数", "analytics.system.totalTeams": "团队总数", - "analytics.system.totalUsers": "用户总数", + "analytics.system.totalUsers": "总活动用户", "analytics.system.totalWebsockets": "Websocket 连接", "analytics.team.activeUsers": "有发信息的的正常用户", "analytics.team.newlyCreated": "新建的用户", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "最近活跃用户", "analytics.team.title": "{team}的团队统计数据", "analytics.team.totalPosts": "信息总数", - "analytics.team.totalUsers": "用户总数", + "analytics.team.totalUsers": "总活动用户", "api.channel.add_member.added": "{addedUsername} 被 {username} 添加到此频道.", "api.channel.delete_channel.archived": "{username} 归档了频道。", "api.channel.join_channel.post_and_forget": "{username} 加入了频道。", @@ -1426,7 +1425,7 @@ "channel_modal.purposeEx": "例如:\"用于提交问题和建议的频道\"", "channel_notifications.allActivity": "所有操作", "channel_notifications.globalDefault": "默认全局({notifyLevel})", - "channel_notifications.muteChannel.help": "Muting turns off desktop, email and push notifications for this channel. The channel will not be marked as unread unless you're mentioned.", + "channel_notifications.muteChannel.help": "静音此频道的桌面、邮件以及推送通知。此频道将不会被标为未读除非您被提及。", "channel_notifications.muteChannel.off.desc": "频道未被静音", "channel_notifications.muteChannel.off.title": "关闭", "channel_notifications.muteChannel.on.desc": "频道已被静音", @@ -1582,7 +1581,7 @@ "emoji_list.delete.confirm.title": "删除自定义表情符", "emoji_list.empty": "未找到自定义表情符", "emoji_list.header": "自定义表情", - "emoji_list.help": "Custom emoji are available to everyone on your server. Type ':' followed by two characters in a message box to bring up the emoji selection menu.", + "emoji_list.help": "自定义表情符可在您服务器上任何人使用。在消息框输入 ':' 加两个字符以打开表情符选择菜单。", "emoji_list.help2": "提示:如果您用 #,##,或 ### 作为含有表情符的新一行开头,你可以使用大尺寸表情符。输入 '# :smile:' 来体验此功能。", "emoji_list.image": "图像", "emoji_list.name": "名称", @@ -1728,7 +1727,7 @@ "help.commands.intro": "斜杠命令可以在 Mattermost 里的文本输入框内进行操作。输入 `/` 紧接着命令以及一些参数进行操作。\n\n自带的斜杠指令在所有Mattermost可以使用并且自定义斜杠命令可以用来设定与外部应用互动。了解更多设置自定义斜杠命令到 [developer slash command documentation page](http://docs.mattermost.com/developer/slash-commands.html)。", "help.commands.title": "# 执行命令\n___", "help.composing.deleting": "## 删除消息\n点击您在自己发送的消息中想删除的消息旁的 **[...]** 文字图标,然后点击 **删除**。系统或团队管理员可以删除任何在系统或团队中的消息。", - "help.composing.editing": "## 修改消息\n点击您在自己发送的消息中想删除的消息旁的 **[...]** 文字图标,然后点击 **修改**。在修改消息内容后,按 **回车** 以保存改动。消息内容不触发新的 @mention 通知,桌面通知或通知声音。", + "help.composing.editing": "## 修改消息\n点击您在自己发送的消息中想修改的消息旁的 **[...]** 文字图标,然后点击 **修改**。在修改消息内容后,按 **回车** 以保存改动。消息内容不触发新的 @mention 通知,桌面通知或通知声音。", "help.composing.linking": "## 消息链接\n**永久链接** 功能可以给任何消息创建链接。共享此链接给此频道的其他用户让他们直接访问消息归档里的消息。不在此频道的成员无法看永久链接。点任何消息旁边 **[...]** 图标 > **永久链接** > **复制链接** 来获取链接。", "help.composing.posting": "## 发布消息\n在文字输入框里打入消息,然后按 ENTER 发送。用 Shift + ENTER 将在不发送消息下换行。如果想使用 Ctrl+ENTER 发信息,请到 **主菜单 > 帐号设定 > 用 Ctrl + Enter 发消息**。", "help.composing.posts": "#### 发文\n发文被视为母消息。它们通常时回复串的开头。发文是从中间面板下方的输入框发送。", @@ -1743,7 +1742,7 @@ "help.formatting.emojis": "## 表情符\n\n输入 `:` 打开表情符自动完成。完整的表情符列表在[这里](http://www.emoji-cheat-sheet.com/)。您页可以创建您自己的[自定义表情符](http://docs.mattermost.com/help/settings/custom-emoji.html)如果您想用的表情符不存在。", "help.formatting.example": "示例:", "help.formatting.githubTheme": "**GitHub 主题风格**", - "help.formatting.headings": "## 标题\n\n在标题前输入#和一个空格创建标题。用更多 # 创建子标题。", + "help.formatting.headings": "## 标题\n\n在标题前输入 # 和一个空格创建标题。用更多 # 创建子标题。", "help.formatting.headings2": "另外,您可以在文字下一行用 `===` 或 `---` 来创建标题。", "help.formatting.headings2Example": "大标题\n-------------", "help.formatting.headingsExample": "## 大标题\n### 小标题\n#### 更加小标题", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "团队选择", "mobile.share_extension.cancel": "取消", "mobile.share_extension.channel": "频道", + "mobile.share_extension.error_close": "关闭", + "mobile.share_extension.error_message": "使用共享扩展时遇到了错误。", + "mobile.share_extension.error_title": "扩展错误", "mobile.share_extension.send": "发送", "mobile.share_extension.team": "团队", "mobile.suggestion.members": "成员", @@ -2300,7 +2302,7 @@ "more_direct_channels.directchannel.deactivated": "{displayname} - 已停用", "more_direct_channels.directchannel.you": "{displayname} (您)", "more_direct_channels.message": "消息", - "more_direct_channels.new_convo_note": "这将创建新对话。如果你在添加很多用户,请考虑创建私有频道。", + "more_direct_channels.new_convo_note": "这将创建新对话。如果你在添加许多用户,请考虑创建私有频道。", "more_direct_channels.new_convo_note.full": "您已达到此对话的最多人数。请考虑创建私有频道。", "more_direct_channels.title": "私信", "msg_typing.areTyping": "{users}和{last}正在输入...", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "搜索并添加成员", "navbar.addMembers": "添加成员", "navbar.click": "请点击这里", + "navbar.clickToAddHeader": "{clickHere} 添加。", "navbar.delete": "删除频道...", "navbar.leave": "离开频道", "navbar.manageMembers": "成员管理", - "navbar.noHeader": "没有频道标题。{newline}{link}去添加。", + "navbar.noHeader": "暂无频道标题。", "navbar.preferences": "通知偏好", "navbar.rename": "重命名频道...", "navbar.setHeader": "设置频道标题...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": "导入失败:", "team_import_tab.import": "导入", "team_import_tab.importHelpDocsLink": "文档", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > 管理 > 工作区设定 > 导入/导出数据 > 导出 > 开始导出", "team_import_tab.importHelpExporterLink": "Slack 高级导出", "team_import_tab.importHelpLine1": "导入 Slack 到 Mattermost 支持导入您 Slack 团队的公开频道中的信息。", "team_import_tab.importHelpLine2": "要想导入 Slack 团队,请至 {exportInstructions}。请见 {uploadDocsLink} 了解详情。", @@ -2716,7 +2719,7 @@ "textbox.preview": "预览", "textbox.quote": ">引用", "textbox.strike": "删除线", - "tutorial_intro.allSet": "您已经创建好了", + "tutorial_intro.allSet": "您已经一切都准备好了", "tutorial_intro.end": "点击“下一步”进入{channel}。这是团队成员注册后看到的第一个频道。使用它来发布每个人需要知道的更新信息。", "tutorial_intro.invite": "邀请团队成员", "tutorial_intro.mobileApps": "安装 {link} 上的应用以便随时访问和获得通知。", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "按 CTRL+ENTER 发送消息", "user.settings.advance.slashCmd_autocmp": "启用外部应用程序提供斜杠命令的自动补全功能", "user.settings.advance.title": "高级设置", - "user.settings.advance.webrtc_preview": "开启使用 WebRTC 的一对一通话", "user.settings.custom_theme.awayIndicator": "离开显示", "user.settings.custom_theme.buttonBg": "按钮BG", "user.settings.custom_theme.buttonColor": "文本按钮", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "启用", "user.settings.tokens.cancel": "取消", "user.settings.tokens.clickToEdit": "点击 '更改' 以管理您的个人访问令牌", + "user.settings.tokens.confirmCopyButton": "是的,我已经复制了令牌", + "user.settings.tokens.confirmCopyMessage": "请确定复制并保存了以下令牌。您将不会再次看见它!", + "user.settings.tokens.confirmCopyTitle": "您已经复制令牌了吗?", "user.settings.tokens.confirmCreateButton": "是,创建", "user.settings.tokens.confirmCreateMessage": "您正在创建拥有系统管理权限的个人访问令牌。您确定要创建此令牌吗?", "user.settings.tokens.confirmCreateTitle": "创建系统管理员个人访问令牌", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "访问令牌:", "user.settings.tokens.tokenDesc": "令牌描述:", "user.settings.tokens.tokenId": "令牌 ID:", + "user.settings.tokens.tokenLoading": "加载中...", "user.settings.tokens.userAccessTokensNone": "无个人访问令牌。", "user_list.notFound": "没有找到用户", "user_profile.account.editSettings": "修改账户设置", @@ -3086,6 +3092,7 @@ "view_image.loading": "加载中 ", "view_image_popover.download": "下载", "view_image_popover.file": "{count, number} 个文件,共 {total, number}", + "view_image_popover.open": "打开", "view_image_popover.publicLink": "获取公开链接", "web.footer.about": "关于", "web.footer.help": "帮助", diff --git a/assets/base/i18n/zh-TW.json b/assets/base/i18n/zh-TW.json index 902bab2ce..19054650a 100644 --- a/assets/base/i18n/zh-TW.json +++ b/assets/base/i18n/zh-TW.json @@ -371,7 +371,6 @@ "admin.email.allowUsernameSignInTitle": "啟用以使用者名稱登入:", "admin.email.connectionSecurityTest": "測試連線", "admin.email.easHelp": "從企業 App 商店瞭解編譯與佈署自已的行動應用程式。", - "admin.email.emailFail": "連線失敗:{error}", "admin.email.emailSuccess": "成功傳送電子郵件。請檢查收件匣並確認。", "admin.email.enableEmailBatching.clusterEnabled": "高可用性模式啟用時不能啟用批次郵件。", "admin.email.enableEmailBatching.siteURL": "啟用批次郵件前必須先設定站台網址 (設定 > 站台網址)。", @@ -1237,7 +1236,7 @@ "analytics.system.totalReadDbConnections": "複本資料庫連線", "analytics.system.totalSessions": "總工作階段數", "analytics.system.totalTeams": "全部團隊", - "analytics.system.totalUsers": "全部使用者", + "analytics.system.totalUsers": "每月活躍使用者", "analytics.system.totalWebsockets": "Websocket 連線", "analytics.team.activeUsers": "有發文的活躍使用者", "analytics.team.newlyCreated": "新建的使用者", @@ -1248,7 +1247,7 @@ "analytics.team.recentUsers": "最近的活躍使用者", "analytics.team.title": "{team}的團隊統計", "analytics.team.totalPosts": "全部發文", - "analytics.team.totalUsers": "全部使用者", + "analytics.team.totalUsers": "每月活躍使用者", "api.channel.add_member.added": "{username} 已將 {addedUsername} 加入頻道", "api.channel.delete_channel.archived": "{username} 已封存頻道。", "api.channel.join_channel.post_and_forget": "{username} 已加入頻道。", @@ -2270,6 +2269,9 @@ "mobile.settings.team_selection": "選擇團隊", "mobile.share_extension.cancel": "取消", "mobile.share_extension.channel": "頻道", + "mobile.share_extension.error_close": "關閉", + "mobile.share_extension.error_message": "An error has occurred while using the share extension.", + "mobile.share_extension.error_title": "Extension Error", "mobile.share_extension.send": "送出", "mobile.share_extension.team": "團隊", "mobile.suggestion.members": "成員", @@ -2314,10 +2316,11 @@ "multiselect.placeholder": "搜尋與新增成員", "navbar.addMembers": "新增成員", "navbar.click": "請按此處", + "navbar.clickToAddHeader": "{clickHere} to add one.", "navbar.delete": "刪除頻道...", "navbar.leave": "離開頻道", "navbar.manageMembers": "成員管理", - "navbar.noHeader": "沒有頻道標語。{newline}{link}來增加。", + "navbar.noHeader": "No channel header yet.", "navbar.preferences": "通知喜好設定", "navbar.rename": "變更頻道名稱…", "navbar.setHeader": "設定頻道標題...", @@ -2678,7 +2681,7 @@ "team_import_tab.failure": " 匯入失敗:", "team_import_tab.import": "匯入", "team_import_tab.importHelpDocsLink": "說明文件", - "team_import_tab.importHelpExportInstructions": "Slack > Team Settings > Import/Export Data > Export > Start Export", + "team_import_tab.importHelpExportInstructions": "Slack > Administration > Workspace settings > Import/Export Data > Export > Start Export", "team_import_tab.importHelpExporterLink": "Slack 進階匯出", "team_import_tab.importHelpLine1": "由 Slack 匯入 Mattermost 支援匯入 Slack 團隊公開頻道的訊息。", "team_import_tab.importHelpLine2": "由 Slack 匯入團隊,請至 {exportInstructions}。請參閱{uploadDocsLink}。", @@ -2758,7 +2761,6 @@ "user.settings.advance.sendTitle": "用 Ctrl + Enter 貼文", "user.settings.advance.slashCmd_autocmp": "啟用外部程式以提供自動完成斜線命令", "user.settings.advance.title": "進階設定", - "user.settings.advance.webrtc_preview": "啟用此功能以撥打或接收一對一的 WebRTC 通訊", "user.settings.custom_theme.awayIndicator": "離開標識", "user.settings.custom_theme.buttonBg": "按鈕 BG", "user.settings.custom_theme.buttonColor": "按鈕文字", @@ -3050,6 +3052,9 @@ "user.settings.tokens.activate": "啟用", "user.settings.tokens.cancel": "取消", "user.settings.tokens.clickToEdit": "點擊'編輯'以管理個人存取 Token", + "user.settings.tokens.confirmCopyButton": "Yes, I have copied the token", + "user.settings.tokens.confirmCopyMessage": "Make sure you have copied and saved the access token below. You won't be able to see it again!", + "user.settings.tokens.confirmCopyTitle": "Have you copied your token?", "user.settings.tokens.confirmCreateButton": "是,建立", "user.settings.tokens.confirmCreateMessage": "正在產生有系統管理員權限的個人存取 Token。請確認要產生此 Token。", "user.settings.tokens.confirmCreateTitle": "產生系統管理員個人存取 Token", @@ -3075,6 +3080,7 @@ "user.settings.tokens.token": "存取 Token:", "user.settings.tokens.tokenDesc": "Token 敘述:", "user.settings.tokens.tokenId": "Token ID:", + "user.settings.tokens.tokenLoading": "載入中…", "user.settings.tokens.userAccessTokensNone": "沒有個人存取 Token。", "user_list.notFound": "找不到任何使用者", "user_profile.account.editSettings": "帳號設定", @@ -3086,6 +3092,7 @@ "view_image.loading": "載入中", "view_image_popover.download": "下載", "view_image_popover.file": "第{count, number}個檔案,共有{total, number}個檔案", + "view_image_popover.open": "Open", "view_image_popover.publicLink": "取得公開連結", "web.footer.about": "關於", "web.footer.help": "說明", diff --git a/assets/base/images/thumb.png b/assets/base/images/thumb.png new file mode 100644 index 000000000..4bfe55da5 Binary files /dev/null and b/assets/base/images/thumb.png differ diff --git a/assets/base/images/thumb@2x.png b/assets/base/images/thumb@2x.png new file mode 100644 index 000000000..9fda66633 Binary files /dev/null and b/assets/base/images/thumb@2x.png differ diff --git a/assets/base/images/thumb@3x.png b/assets/base/images/thumb@3x.png new file mode 100644 index 000000000..54816bee0 Binary files /dev/null and b/assets/base/images/thumb@3x.png differ diff --git a/fastlane/Gemfile.lock b/fastlane/Gemfile.lock index 83f7e63eb..984085983 100644 --- a/fastlane/Gemfile.lock +++ b/fastlane/Gemfile.lock @@ -1,19 +1,19 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (2.3.6) + CFPropertyList (3.0.0) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) atomos (0.1.2) - aws-partitions (1.70.0) - aws-sdk-core (3.17.0) + aws-partitions (1.81.0) + aws-sdk-core (3.20.1) aws-partitions (~> 1.0) aws-sigv4 (~> 1.0) jmespath (~> 1.0) aws-sdk-kms (1.5.0) aws-sdk-core (~> 3) aws-sigv4 (~> 1.0) - aws-sdk-s3 (1.8.2) + aws-sdk-s3 (1.9.1) aws-sdk-core (~> 3) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.0) @@ -26,11 +26,12 @@ GEM highline (~> 1.7.2) declarative (0.0.10) declarative-option (0.1.0) - domain_name (0.5.20170404) + domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) - dotenv (2.2.1) - excon (0.60.0) - faraday (0.14.0) + dotenv (2.4.0) + emoji_regex (0.1.1) + excon (0.62.0) + faraday (0.15.0) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) @@ -38,7 +39,7 @@ GEM faraday_middleware (0.12.2) faraday (>= 0.7.4, < 1.0) fastimage (2.1.1) - fastlane (2.85.0) + fastlane (2.93.1) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) babosa (>= 1.0.2, < 2.0.0) @@ -46,6 +47,7 @@ GEM colored commander-fastlane (>= 4.4.6, < 5.0.0) dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (~> 0.1) excon (>= 0.45.0, < 1.0.0) faraday (~> 0.9) faraday-cookie_jar (~> 0.0.6) @@ -63,13 +65,14 @@ GEM public_suffix (~> 2.0.0) rubyzip (>= 1.1.0, < 2.0.0) security (= 0.1.3) + simctl (~> 1.6.3) slack-notifier (>= 2.0.0, < 3.0.0) terminal-notifier (>= 1.6.2, < 2.0.0) terminal-table (>= 1.4.5, < 2.0.0) tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) - xcodeproj (>= 1.5.2, < 2.0.0) + xcodeproj (>= 1.5.7, < 2.0.0) xcpretty (>= 0.2.4, < 1.0.0) xcpretty-travis-formatter (>= 0.0.3) fastlane-plugin-android_change_package_identifier (0.1.0) @@ -96,7 +99,7 @@ GEM http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - jmespath (1.3.1) + jmespath (1.4.0) json (2.1.0) jwt (2.1.0) little-plugger (1.1.4) @@ -112,7 +115,8 @@ GEM multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nanaimo (0.2.3) + nanaimo (0.2.5) + naturally (2.1.0) nokogiri (1.8.2) mini_portile2 (~> 2.3.0) os (0.9.6) @@ -131,6 +135,9 @@ GEM faraday (~> 0.9) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) + simctl (1.6.4) + CFPropertyList + naturally slack-notifier (2.3.2) terminal-notifier (1.8.0) terminal-table (1.8.0) @@ -143,14 +150,14 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.5) - unicode-display_width (1.3.0) + unicode-display_width (1.3.2) word_wrap (1.0.0) - xcodeproj (1.5.6) - CFPropertyList (~> 2.3.3) + xcodeproj (1.5.7) + CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.2) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.3) + nanaimo (~> 0.2.4) xcpretty (0.2.8) rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.0) diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index 2e5cd6314..942863ad1 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -2468,7 +2468,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 94; + CURRENT_PROJECT_VERSION = 97; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; @@ -2517,7 +2517,7 @@ CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 94; + CURRENT_PROJECT_VERSION = 97; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = UQ8HT4Q2XM; ENABLE_BITCODE = NO; diff --git a/ios/Mattermost/Info.plist b/ios/Mattermost/Info.plist index 874db4903..d80b48292 100644 --- a/ios/Mattermost/Info.plist +++ b/ios/Mattermost/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 94 + 97 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS @@ -64,6 +64,8 @@ Take a Photo or Video and upload it to your mattermost instance NSLocationWhenInUseUsageDescription Send your current location to your Mattermost instance + NSLocationAlwaysUsageDescription + Send your current location to your Mattermost instance NSMotionUsageDescription Share your route in your Mattermost instance NSPhotoLibraryUsageDescription diff --git a/ios/MattermostShare/Info.plist b/ios/MattermostShare/Info.plist index cd624dca0..68f4395e4 100644 --- a/ios/MattermostShare/Info.plist +++ b/ios/MattermostShare/Info.plist @@ -23,7 +23,7 @@ CFBundleShortVersionString 1.8.0 CFBundleVersion - 94 + 97 NSAppTransportSecurity NSAllowsArbitraryLoads diff --git a/ios/MattermostTests/Info.plist b/ios/MattermostTests/Info.plist index 6003e8c58..09fba9bfc 100644 --- a/ios/MattermostTests/Info.plist +++ b/ios/MattermostTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 94 + 97 diff --git a/package-lock.json b/package-lock.json index 21415e13f..52a7b2add 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,51 +8,16 @@ "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz", "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==", + "dev": true, "requires": { "@babel/highlight": "7.0.0-beta.44" } }, - "@babel/core": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.44.tgz", - "integrity": "sha512-E16ps55Av+GAO6qVTZeVR5FMVppraUPjiJEHuH0sANsbmkEjqQ70XQiv0KXPYbPzHBd+gijx6uLakSacjvtwIA==", - "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helpers": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "convert-source-map": "1.5.1", - "debug": "3.1.0", - "json5": "0.5.1", - "lodash": "4.17.5", - "micromatch": "2.3.11", - "resolve": "1.7.1", - "semver": "5.5.0", - "source-map": "0.5.7" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, "@babel/generator": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz", "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==", + "dev": true, "requires": { "@babel/types": "7.0.0-beta.44", "jsesc": "2.5.1", @@ -64,51 +29,16 @@ "jsesc": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true } } }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.44.tgz", - "integrity": "sha512-trEw653XRNMCBIno/GyuffHi7AxB4miw1EHDeA/q9uIYNdyaXahIdQuBlbzGRWWoBdObFf4Ua0cDFgWkrfgBPw==", - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.44.tgz", - "integrity": "sha512-n5M57LzSOe1cvJZ9DrOzftD/QYkVrrKNpXjzTXcAZKYx5eRjaiORXlB8vu32mIwFrg8OkalQVqlmk8gi3SpKpg==", - "requires": { - "@babel/types": "7.0.0-beta.44", - "esutils": "2.0.2" - } - }, - "@babel/helper-call-delegate": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.44.tgz", - "integrity": "sha512-2J9K2S2emLBqdNicB1lsjn3bIKPmn9/E5aNu5Yx8TS3pFpMRJjh4PQq5m669L+sajPw/9KE2U089xjPmPn1qcg==", - "requires": { - "@babel/helper-hoist-variables": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-define-map": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.44.tgz", - "integrity": "sha512-u0YWuZFAT8tgyp5PJX2NjmU6UrKgQF2AZ0aqXXC/RMEdEFRGDe4t/VBk6MCvKjyOb8R5UqiaPJszq1VLB67aTw==", - "requires": { - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "lodash": "4.17.5" - } - }, "@babel/helper-function-name": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz", "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==", + "dev": true, "requires": { "@babel/helper-get-function-arity": "7.0.0-beta.44", "@babel/template": "7.0.0-beta.44", @@ -119,119 +49,25 @@ "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz", "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==", + "dev": true, "requires": { "@babel/types": "7.0.0-beta.44" } }, - "@babel/helper-hoist-variables": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.44.tgz", - "integrity": "sha512-WRMGJKSVP32/T7pBAb52oXa7dSGgtHk2VZ0nii/MzrXh40IYqNGRmKdI7x57pL421ccvnqZg+mgOH+mNFSKm6g==", - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.44.tgz", - "integrity": "sha512-V95wi6rCffcLM46XdaUJHRc3D/XSvfsQshedaX1riHQCbs0uVopdswXrykwB6E/QEPfUGxXfs7l5GubupOi+Cw==", - "requires": { - "@babel/types": "7.0.0-beta.44", - "lodash": "4.17.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.44.tgz", - "integrity": "sha512-mwoQuzm1xY3L00Rf6vHO0tFKkBxarODf1f5l4wClTzvBmm7ReikPKyNwgS7wp2dzlorpIKPAAw+n3IEhnOjLJg==", - "requires": { - "@babel/helper-module-imports": "7.0.0-beta.44", - "@babel/helper-simple-access": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "lodash": "4.17.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.44.tgz", - "integrity": "sha512-A9JodnSG8mNiazppInvrAtw4rN+TW61He/EnZ9szVgWkivonZeuG2D0hVLpE5sYuqw128seyw+tY9NEY7txmcQ==", - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.44.tgz", - "integrity": "sha512-k0hZ8w9N3b0Psmlw0bB7U9Hwqc+/hh7yOPFyLi5KAX9pRZ9i+UbTg6DxsVLVuITvF/M1UZNrq7vatrlEw/IPMg==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.44.tgz", - "integrity": "sha512-Jk2mwO7QOx9n5ktVx8OOuuybyCuZ+gSnd9HqkdxqdfjF+kzJ6FvQ1QUqOf3Dg1uTFmN2/UzBpFgFV4OH71xmWw==", - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.44", - "@babel/helper-wrap-function": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-replace-supers": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.44.tgz", - "integrity": "sha512-8PTdsyYE+Fyn8Qy0Da7YnmXhm+vOI73YFHcrAW2s81g9Ae5F3ZA+RvQQe7RPP2mi+Jg/GqXGPUmHYqDpQ3pT9Q==", - "requires": { - "@babel/helper-optimise-call-expression": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-simple-access": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.44.tgz", - "integrity": "sha512-z6tIoPYPT9VOgVSKC7wPjobjvCP/DEfM0uvMDhofAl8p0GDMmMCCs46UNBr6hW1T55WgUGdkNiCFYVnCLjWNFQ==", - "requires": { - "@babel/template": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "lodash": "4.17.5" - } - }, "@babel/helper-split-export-declaration": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", + "dev": true, "requires": { "@babel/types": "7.0.0-beta.44" } }, - "@babel/helper-wrap-function": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.44.tgz", - "integrity": "sha512-qCdMAdMzDhO87r7yS2adqzIl2N9FJaVkPYq6bKllkNcmHquytve+hd/jD/lruD71i3JWkH+M352U+lhW2qkToA==", - "requires": { - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helpers": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.44.tgz", - "integrity": "sha512-7qXsqiaMZzVuI0dobFGa9dQhCd6Y19lGeu4HrFHJo13/y9NKngepg/CYMzBi79TacKeaWfJNj3TeVCyRtfZqUg==", - "requires": { - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, "@babel/highlight": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz", "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", + "dev": true, "requires": { "chalk": "2.3.2", "esutils": "2.0.2", @@ -242,6 +78,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "1.9.1" } @@ -250,6 +87,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", @@ -260,265 +98,18 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, "requires": { "has-flag": "3.0.0" } } } }, - "@babel/plugin-check-constants": { - "version": "7.0.0-beta.38", - "resolved": "https://registry.npmjs.org/@babel/plugin-check-constants/-/plugin-check-constants-7.0.0-beta.38.tgz", - "integrity": "sha512-MjdGn/2sMLu0fnNFbkILut0OsegzRTeCOJ/uGHH88TwTXPzxONx2cTVJ36i3cTQXHMiIOUT3hX6HqzWM99Q6vA==" - }, - "@babel/plugin-external-helpers": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.0.0-beta.44.tgz", - "integrity": "sha512-ESeKHYHOLYzf0I9l0ZP8X15VhNSE25TvCUnFwF4sjo0rrj9EHFNZ/NDRWo8z0/vdPRkhPucbKGdHSj3Z6P3YTg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.44.tgz", - "integrity": "sha512-IQ9kUIPg4iKDPkVKHvN8EAiRa5qH6+fUqzWPMtsDzmXD2Rpdj0FtR/I0rJkqcutYxneNwfDJFsgTvmFixClSww==", - "requires": { - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/plugin-syntax-class-properties": "7.0.0-beta.44" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.44.tgz", - "integrity": "sha512-56Pqyeq3weYZccmcyzS4DVyVQ11SGWS6xCj/a5SmhvKXGHC2pEVovIBF63dFoQTlYFOzix9sZyW5oNVWicbTRg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.44" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.44.tgz", - "integrity": "sha512-lyojjfVoXuL+Oa95TSVWyf5fMO+JzvMpbFQaZN+voWajMt+Cq3lx8N5JszjlcQzBOZOffqjzMxlAKhNVw95ufA==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.44.tgz", - "integrity": "sha512-1NrDPMboC3FzaNdgT11CbX5owPPBlSRMT5XnrJ2KgB1ejKwa5dRhAWLCjP+MV77675Air7Gk+NVvec0G1GgxDg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.44.tgz", - "integrity": "sha512-tlZrfM+rg44qBGvAjInPESP1kgcwcgU/xNq4uHZUyod5/L5aGYM0B9GJkgwGi1cf9EJiC1gwitHgSbgCAMbFSw==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.44.tgz", - "integrity": "sha512-q0AqflJKM+IcyUTblGnVckka160/tUYkDF77o4fpkk3uCb7TxQIXlnBM8V/mx96Tf+JRyE0AHFwt2mHomd0mWg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.44.tgz", - "integrity": "sha512-pVk9nFH7AAmn9Zor8Rv6g/JVXFwBW4FSFV1/3W84bw9s8yc8LZ7KqrCCpcHgBACVWJYnAtoxsaf7FFcQFl/z7Q==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.44.tgz", - "integrity": "sha512-EnE9WACf+ZQZcLcmT26PEaIs3aWhr6shLJIdhaqZavN3CitxJvfia1q8WyCS4GO3wIdopgdeIpD2Xwe4wmJFFQ==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.44.tgz", - "integrity": "sha512-a9mt8PwVaudo8LbLrp7TpbwV/HoO7T9Wjyr/aHB4UisUfQoE89iWBJYIweL/ho831Nzy8mNJlXfNxAfZc7Fojw==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "lodash": "4.17.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.44.tgz", - "integrity": "sha512-oQE40NQ9HBg3KJppRrG0AFYmb73mVJUPmFjUZtuMlFJWV4kAyPwfGC98MDJ7fFjGZLIWesJD7yE+eh0e4N2ssQ==", - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.44", - "@babel/helper-define-map": "7.0.0-beta.44", - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-optimise-call-expression": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/helper-replace-supers": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "globals": "11.4.0" - }, - "dependencies": { - "globals": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", - "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==" - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.44.tgz", - "integrity": "sha512-gLzREw6hb6qDoJMx/uMcXfkom5mboBi7yWg0S/uyof4laIl7cPCrrCleYZfi4sF9CgRPP48TMIoi2rVtKvrJ1g==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.44.tgz", - "integrity": "sha512-lTWaW8O3V01efNRDcAyf9iZ/kVuZc2PNHoCYitm74H/LVBk3dkKb4TymMDq/xYcTQCNPw5EvEH+3NIiLL29/Mw==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.44.tgz", - "integrity": "sha512-zDubi/5SxprXvXqSF2MV96ZMedKQgVmy41JXUbY9jDFc+qbRFJh7aNKy+RfDYFpWV4tZQLkc2CEUgzwixDWEgw==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/plugin-syntax-flow": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.44.tgz", - "integrity": "sha512-910UuvEuN6CM3G7+V3fHnYFBbw/YZUGgQlXpdlQnzN43uny2Xy33BxoFlWq1dOS1Q7xJnsJNEb2mm2Eks2uTvg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.44.tgz", - "integrity": "sha512-GDxrbHs4VsbJjZbozMZY7AfMqGZ4U0LNp2YpZ6rMi++1LOo/pmSZ95VSX2T/XfI1c7xNVuVQDbH0QjaJUzUepw==", - "requires": { - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.44.tgz", - "integrity": "sha512-h6KxHCj14tYj1dahXlfs/JP1fMzMHdmVCapM4UjberhkcAj4ZkZpmdQbN2odaQRT1DX2hA8eQWsmeKJw2Ifq8w==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.44.tgz", - "integrity": "sha512-wi1CPE/1G+EhJwFMgF0zhtE427dspqakhkl4na0KW0xmzh1Q3EKhfHsK/gizzNQlNtHRaW/Ks/vafJD3bAlk1Q==", - "requires": { - "@babel/helper-module-transforms": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/helper-simple-access": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-object-assign": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.0.0-beta.44.tgz", - "integrity": "sha512-x/0W6Wg/N5R+2kmMHud70Zfupn62TuwnjKM9kSXPSKuV8KPAecWSC4w3Sqvqx5UqeG13MLldLirMCJkgGApTyg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.44.tgz", - "integrity": "sha512-TDEBU2tSAKC0HESeVPwVY6Wlcwgpml5ZymSqxqY0Gr7ei7PTON2O7zmntfmyiigN3BoHxuXnqFqwaz//3KxtTA==", - "requires": { - "@babel/helper-call-delegate": "7.0.0-beta.44", - "@babel/helper-get-function-arity": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.44.tgz", - "integrity": "sha512-8bsi3wydB2vkziFWXs6kGZ/6tg5LFU0219LgCjlNHot1Wbk31biQ+Kchl/HXV+jaI9BRW4K+L2dq1B8zipo2yg==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.44.tgz", - "integrity": "sha512-g25pZKtPRndcaqt+ZRoeV02P37HZKhQyswkpoqwGYfzlKy0SaCCu1ZrhxsXgLBYr86RXP6huaGM9ZSzC9xjufw==", - "requires": { - "@babel/helper-builder-react-jsx": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/plugin-syntax-jsx": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.44.tgz", - "integrity": "sha512-t4CUDgbhxMCAfpAVeTPmSa5m9D24sC1A1DdyWwRLwleJkmuYcMwhwfjkpguOW9zEhaAhM5SUXjEc40WcttnO4g==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44", - "@babel/plugin-syntax-jsx": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.44.tgz", - "integrity": "sha512-G2M4SqLMVJK5y3fs0qgGaBscUmEhAXEY25qNtPBgYsGmdl8k0sdBAf2/4s97iLmhU234DqJYSGa4VS38sau0ig==", - "requires": { - "regenerator-transform": "0.12.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.44.tgz", - "integrity": "sha512-LG213xsGpvCB09Tq7EMaO3COzyNhzV7Hss00UMXR3AId4EThwRoYiLKnekqoOasNdocN+09fKyH3cf/llJgZhQ==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.44.tgz", - "integrity": "sha512-8fEte+nRW4OSdC23P0KBpiE7U4j0GpupMchnsjySYYNimKFnzPP5UYacZ6Lti5kS0XAnVfs09iHLXG1ccsWQsA==", - "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.44.tgz", - "integrity": "sha512-HePlWdKQ5iMTq5C5Zs8hfI0ro2grH+varpTSLpUCOhnYl3yL9bbbgPAdbUwICasi+lIT0Gt94c73BZ1bCnfTWw==", - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.44", - "@babel/helper-plugin-utils": "7.0.0-beta.44" - } - }, "@babel/template": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", + "dev": true, "requires": { "@babel/code-frame": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", @@ -529,7 +120,8 @@ "babylon": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==" + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true } } }, @@ -537,6 +129,7 @@ "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", + "dev": true, "requires": { "@babel/code-frame": "7.0.0-beta.44", "@babel/generator": "7.0.0-beta.44", @@ -553,12 +146,14 @@ "babylon": { "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==" + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", + "dev": true }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -566,7 +161,8 @@ "globals": { "version": "11.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", - "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==" + "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==", + "dev": true } } }, @@ -574,6 +170,7 @@ "version": "7.0.0-beta.44", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", + "dev": true, "requires": { "esutils": "2.0.2", "lodash": "4.17.5", @@ -583,7 +180,8 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true } } }, @@ -1167,6 +765,35 @@ "requires": { "delegates": "1.0.0", "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.1" + } + } } }, "argparse": { @@ -2629,6 +2256,11 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, + "base64-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", + "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=" + }, "base64id": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", @@ -2642,12 +2274,19 @@ "dev": true }, "basic-auth": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", - "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", - "requires": { - "safe-buffer": "5.1.1" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=" + }, + "basic-auth-connect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", + "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=" + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=" }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -2794,7 +2433,8 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true }, "cache-base": { "version": "1.0.1", @@ -3123,7 +2763,7 @@ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "commonmark": { - "version": "github:mattermost/commonmark.js#1496b5d11f245e00aae51f8fa1b2c4f12b4ddd7b", + "version": "github:mattermost/commonmark.js#c9c29834005af6eedd1a979d913b75e34f16a83b", "requires": { "entities": "1.1.1", "mdurl": "1.0.1", @@ -3163,17 +2803,55 @@ } }, "compression": { - "version": "1.7.2", - "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", - "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/compression/-/compression-1.5.2.tgz", + "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", + "accepts": "1.2.13", + "bytes": "2.1.0", "compressible": "2.0.13", - "debug": "2.6.9", + "debug": "2.2.0", "on-headers": "1.0.1", - "safe-buffer": "5.1.1", - "vary": "1.1.2" + "vary": "1.0.1" + }, + "dependencies": { + "accepts": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.5.3" + } + }, + "bytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=" + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" + }, + "vary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=" + } } }, "concat-map": { @@ -3222,14 +2900,230 @@ } }, "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "version": "2.30.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", + "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.0", + "basic-auth-connect": "1.0.0", + "body-parser": "1.13.3", + "bytes": "2.1.0", + "compression": "1.5.2", + "connect-timeout": "1.6.2", + "content-type": "1.0.4", + "cookie": "0.1.3", + "cookie-parser": "1.3.5", + "cookie-signature": "1.0.6", + "csurf": "1.8.3", + "debug": "2.2.0", + "depd": "1.0.1", + "errorhandler": "1.4.3", + "express-session": "1.11.3", + "finalhandler": "0.4.0", + "fresh": "0.3.0", + "http-errors": "1.3.1", + "method-override": "2.3.10", + "morgan": "1.6.1", + "multiparty": "3.3.2", + "on-headers": "1.0.1", "parseurl": "1.3.2", - "utils-merge": "1.0.1" + "pause": "0.1.0", + "qs": "4.0.0", + "response-time": "2.3.2", + "serve-favicon": "2.3.2", + "serve-index": "1.7.3", + "serve-static": "1.10.3", + "type-is": "1.6.16", + "utils-merge": "1.0.0", + "vhost": "3.0.2" + }, + "dependencies": { + "body-parser": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "requires": { + "bytes": "2.1.0", + "content-type": "1.0.4", + "debug": "2.2.0", + "depd": "1.0.1", + "http-errors": "1.3.1", + "iconv-lite": "0.4.11", + "on-finished": "2.3.0", + "qs": "4.0.0", + "raw-body": "2.1.7", + "type-is": "1.6.16" + } + }, + "bytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=" + }, + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "depd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=" + }, + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + }, + "iconv-lite": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", + "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=" + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=" + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=" + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" + } + } + }, + "send": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", + "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", + "requires": { + "debug": "2.2.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "escape-html": "1.0.3", + "etag": "1.7.0", + "fresh": "0.3.0", + "http-errors": "1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "2.3.0", + "range-parser": "1.0.3", + "statuses": "1.2.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=" + } + } + }, + "serve-static": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", + "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "requires": { + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.13.2" + } + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + } + } + }, + "connect-timeout": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", + "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", + "requires": { + "debug": "2.2.0", + "http-errors": "1.3.1", + "ms": "0.7.1", + "on-headers": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } } }, "content-disposition": { @@ -3241,8 +3135,7 @@ "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "content-type-parser": { "version": "1.0.2", @@ -3261,11 +3154,26 @@ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, + "cookie-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", + "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6" + }, + "dependencies": { + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" + } + } + }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-descriptor": { "version": "0.1.1", @@ -3292,6 +3200,11 @@ "vary": "1.1.2" } }, + "crc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", + "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=" + }, "create-react-class": { "version": "15.6.3", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", @@ -3330,6 +3243,16 @@ } } }, + "csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "requires": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + } + }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -3363,6 +3286,33 @@ "cssom": "0.3.2" } }, + "csurf": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", + "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "csrf": "3.0.6", + "http-errors": "1.3.1" + }, + "dependencies": { + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + } + } + }, "cubic-bezier": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/cubic-bezier/-/cubic-bezier-0.1.2.tgz", @@ -3720,9 +3670,9 @@ } }, "errorhandler": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.0.tgz", - "integrity": "sha1-6rpkyl1UKjEayUX1gt78M2Fl2fQ=", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", + "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", "requires": { "accepts": "1.3.5", "escape-html": "1.0.3" @@ -3995,7 +3945,8 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true }, "event-target-shim": { "version": "1.1.1", @@ -4124,6 +4075,60 @@ } } }, + "express-session": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", + "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "crc": "3.3.0", + "debug": "2.2.0", + "depd": "1.0.1", + "on-headers": "1.0.1", + "parseurl": "1.3.2", + "uid-safe": "2.0.0", + "utils-merge": "1.0.0" + }, + "dependencies": { + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=" + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "depd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "uid-safe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", + "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "requires": { + "base64-url": "1.2.1" + } + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + } + } + }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", @@ -4293,17 +4298,34 @@ } }, "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", + "debug": "2.2.0", + "escape-html": "1.0.2", "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "escape-html": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", + "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } } }, "find-babel-config": { @@ -4393,7 +4415,8 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true }, "fs-extra": { "version": "1.0.0", @@ -5581,6 +5604,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, "requires": { "depd": "1.1.2", "inherits": "2.0.3", @@ -5591,7 +5615,8 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true } } }, @@ -6096,36 +6121,30 @@ "integrity": "sha512-bBfs4Gx+DNdiCVJGdvNxSGgbFfaoHnPn69kwTL++wQLfN1Y5SDNYosqhBz2MyGqy6Z6J/MIEivJ1BZ0cmnUhmQ==" }, "jest-docblock": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.0.tgz", - "integrity": "sha512-lDY7GZ+/CJb02oULYLBDj7Hs5shBhVpDYpIm8LUyqw9X2J22QRsM19gmGQwIFqGSJmpc/LRrSYudeSrG510xlQ==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.1.0.tgz", + "integrity": "sha512-/+OGgBVRJb5wCbXrB1LQvibQBz2SdrvDdKRNzY1gL+OISQJZCR9MOewbygdT5rVzbbkfhC4AR2x+qWmNUdJfjw==", "requires": { "detect-newline": "2.1.0" } }, "jest-haste-map": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.2.tgz", - "integrity": "sha512-EdQADHGXRqHJYAr7q9B9YYHZnrlcMwhx1+DnIgc9uN05nCW3RvGCxJ91MqWXcC1AzatLoSv7SNd0qXMp2jKBDA==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.1.0.tgz", + "integrity": "sha512-vETdC6GboGlZX6+9SMZkXtYRQSKBbQ47sFF7NGglbMN4eyIZBODply8rlcO01KwBiAeiNCKdjUyfonZzJ93JEg==", "requires": { "fb-watchman": "2.0.0", "graceful-fs": "4.1.11", - "jest-docblock": "22.4.0", - "jest-serializer": "22.4.3", - "jest-worker": "22.2.2", + "jest-docblock": "22.1.0", + "jest-worker": "22.1.0", "micromatch": "2.3.11", "sane": "2.5.0" } }, - "jest-serializer": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", - "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==" - }, "jest-worker": { - "version": "22.2.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz", - "integrity": "sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.1.0.tgz", + "integrity": "sha512-ezLueYAQowk5N6g2J7bNZfq4NWZvMNB5Qd24EmOZLcM5SXTdiFvxykZIoNiMj9C98cCbPaojX8tfR7b1LJwNig==", "requires": { "merge-stream": "1.0.1" } @@ -6606,7 +6625,7 @@ } }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#3e509a951cdca620fa4dabc651ebe695bc5b9213", + "version": "github:mattermost/mattermost-redux#c2cdd8fad33b97af4d0af2462b24f9cfd50a1913", "requires": { "deep-equal": "1.0.1", "form-data": "2.3.1", @@ -6649,8 +6668,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { "version": "1.1.0", @@ -6677,49 +6695,58 @@ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "requires": { "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "method-override": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", + "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "requires": { + "debug": "2.6.9", + "methods": "1.1.2", + "parseurl": "1.3.2", + "vary": "1.1.2" } }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "metro": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.28.0.tgz", - "integrity": "sha512-Wybg5c5/ggGD9tb0fvmoTVaswZpX1r9bkqIPp35/ny5UYdAphtAZeMmsZ4HSkdjnQ+aKSNcuIMzy6E8U1F+xsg==", + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.24.7.tgz", + "integrity": "sha512-9Fr3PDPPCTR3WJUHPLZL2nvyEWyvqyyxH9649OmA2TOF7VEtRzWedZlc6PAcl/rDOzwDOu2/c98NRFxnS1CYlw==", "requires": { - "@babel/core": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.44", - "@babel/plugin-check-constants": "7.0.0-beta.38", - "@babel/plugin-external-helpers": "7.0.0-beta.44", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.44", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.44", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.44", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.44", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.44", - "@babel/plugin-transform-classes": "7.0.0-beta.44", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.44", - "@babel/plugin-transform-destructuring": "7.0.0-beta.44", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.44", - "@babel/plugin-transform-for-of": "7.0.0-beta.44", - "@babel/plugin-transform-function-name": "7.0.0-beta.44", - "@babel/plugin-transform-literals": "7.0.0-beta.44", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.44", - "@babel/plugin-transform-object-assign": "7.0.0-beta.44", - "@babel/plugin-transform-parameters": "7.0.0-beta.44", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.44", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.44", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.44", - "@babel/plugin-transform-regenerator": "7.0.0-beta.44", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.44", - "@babel/plugin-transform-spread": "7.0.0-beta.44", - "@babel/plugin-transform-template-literals": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", "absolute-path": "0.0.0", "async": "2.6.0", "babel-core": "6.26.0", @@ -6741,20 +6768,16 @@ "fs-extra": "1.0.0", "graceful-fs": "4.1.11", "image-size": "0.6.2", - "jest-docblock": "22.4.0", - "jest-haste-map": "22.4.2", - "jest-worker": "22.2.2", + "jest-docblock": "22.1.0", + "jest-haste-map": "22.1.0", + "jest-worker": "22.1.0", "json-stable-stringify": "1.0.1", "json5": "0.4.0", "left-pad": "1.3.0", "lodash.throttle": "4.1.1", "merge-stream": "1.0.1", - "metro-babylon7": "0.28.0", - "metro-cache": "0.28.0", - "metro-core": "0.28.0", - "metro-minify-uglify": "0.28.0", - "metro-resolver": "0.28.0", - "metro-source-map": "0.28.0", + "metro-core": "0.24.7", + "metro-source-map": "0.24.7", "mime-types": "2.1.11", "mkdirp": "0.5.1", "request": "2.85.0", @@ -6763,6 +6786,7 @@ "source-map": "0.5.7", "temp": "0.8.3", "throat": "4.1.0", + "uglify-es": "3.3.9", "wordwrap": "1.0.0", "write-file-atomic": "1.3.4", "ws": "1.1.5", @@ -6770,6 +6794,31 @@ "yargs": "9.0.1" }, "dependencies": { + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, "json5": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", @@ -6790,58 +6839,18 @@ } } }, - "metro-babylon7": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-babylon7/-/metro-babylon7-0.28.0.tgz", - "integrity": "sha512-7x18gkVFl2/OgUCa5k//kcp8R9YlZ3ipEWmaWlmnorevSQup6BJGEYNFdgcCgB1uAPrKlAv8lYLVFqhpwa7vFQ==", - "requires": { - "babylon": "7.0.0-beta.44" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==" - } - } - }, - "metro-cache": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.28.0.tgz", - "integrity": "sha512-NFOehgEmDoDPWH8TcZFwF+ydpzBzX3VlnfWHEPcRXXWZ31QefjrDqGxrd5/H/AjDDLo7DKKW30bdHJtNHA1tog==", - "requires": { - "jest-serializer": "22.4.3", - "mkdirp": "0.5.1" - } - }, "metro-core": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.28.0.tgz", - "integrity": "sha512-XDK3eYYMgMmqrR1MEEW34gKbS5c6Fh+MPIpeAJ2AcEyDoYSmEBL7ceRC23HXKP8ajNO3UlUR+8SdXaJJMcwVOQ==", + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.24.7.tgz", + "integrity": "sha512-Qheab9Wmc8T2m3Ax9COyKUk8LxRb1fHWe13CpoEgPIjwFBd6ILNXaq7ZzoWg0OoAbpMsNzvUOnOJNHvfRuJqJg==", "requires": { "lodash.throttle": "4.1.1" } }, - "metro-minify-uglify": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.28.0.tgz", - "integrity": "sha512-6/idvLYM9l5JOcYHvjLXmyh1/pGyOm8S57wYMICzYnKVprYcoNK5R5PR7E8OruF7KsL5KA8zFAZohJYtrSjzUQ==", - "requires": { - "uglify-es": "3.3.9" - } - }, - "metro-resolver": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.28.0.tgz", - "integrity": "sha512-E1lZdnTVyIYHKfR9cRyFDNqU3ZDG14JspsaS4OpI4OahMkE6lrLaAxo6B1TGgDA76q4FoSwCLTkM/DnYnTqJxw==", - "requires": { - "absolute-path": "0.0.0" - } - }, "metro-source-map": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.28.0.tgz", - "integrity": "sha512-CnE6DGgMp4PsQb7fWCOSEm/wIo8cYY4F6qlEHHhveC2TeEQMRJSaSnRaaJPuyojPUupEAKjJ+TsC3CWWy7nk+A==", + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.24.7.tgz", + "integrity": "sha512-12WEgolY5CGvHeHkF5QlM2qatdQC1DyjWkXLK9LzCqzd8YhUZww1+ZCM6E67rJwpeuCU9o1Mkiwd1h7dS+RBvA==", "requires": { "source-map": "0.5.7" } @@ -7086,15 +7095,35 @@ "dev": true }, "morgan": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz", - "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", + "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", "requires": { - "basic-auth": "2.0.0", - "debug": "2.6.9", - "depd": "1.1.2", + "basic-auth": "1.0.4", + "debug": "2.2.0", + "depd": "1.0.1", "on-finished": "2.3.0", "on-headers": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "depd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=" + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } } }, "ms": { @@ -7102,6 +7131,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "multiparty": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", + "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + } + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -10424,7 +10462,8 @@ "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true }, "path-to-regexp": { "version": "1.7.0", @@ -10448,6 +10487,11 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, + "pause": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", + "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=" + }, "pegjs": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", @@ -10688,6 +10732,11 @@ "ret": "0.1.15" } }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", @@ -10728,7 +10777,8 @@ "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true }, "raven-js": { "version": "3.24.1", @@ -10780,9 +10830,9 @@ } }, "react": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/react/-/react-16.3.2.tgz", - "integrity": "sha512-o5GPdkhciQ3cEph6qgvYB7LTOHw/GB0qRI6ZFNugj49qJCFfgHwVNjZ5u+b7nif4vOeMIOuYj3CeYe2IBD74lg==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.3.1.tgz", + "integrity": "sha512-NbkxN9jsZ6+G+ICsLdC7/wUD26uNbvKU/RAxEWgc9kcdKvROt+5d5j2cNQm5PSFTQ4WNGsR3pa4qL2Q0/WSy1w==", "requires": { "fbjs": "0.8.16", "loose-envify": "1.3.1", @@ -10837,9 +10887,9 @@ "integrity": "sha1-vNMUeAJ7ZLMznxCJIatSC0MT3Cw=" }, "react-devtools-core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.1.0.tgz", - "integrity": "sha512-fO6SmpW16E9u6Lb6zQOHrjhJXGBNz+cJ0/a9cSF55nXfL0sQLlvYJR8DpU7f4rMUrVnVineg4XQyYYBZicmhJg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.0.0.tgz", + "integrity": "sha512-24oLTwNqZJceQXfAfKRp3PwCyg2agXAQhgGwe/x6V6CvjLmnMmba4/ut9S8JTIJq7pS9fpPaRDGo5u3923RLFA==", "requires": { "shell-quote": "1.6.1", "ws": "2.3.1" @@ -10918,9 +10968,9 @@ } }, "react-native": { - "version": "0.54.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.54.4.tgz", - "integrity": "sha512-MOueNu1NKKjO3LkiZ/v64UAdpVneS8bjSXrwPEpV9c3Zk3PyFNhOH2CXORo+QC1KR/KAWXF5YX4uISPSwFKGrg==", + "version": "0.52.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.52.3.tgz", + "integrity": "sha512-0GFnmxtkUk0KRkB61JTBv5pkj1JsnKxa0jH8vtM0wa+WSKHLuRCDmEERtk09KOMgJ+esKZO+ZO30nhHup+ZPYg==", "requires": { "absolute-path": "0.0.0", "art": "0.10.2", @@ -10936,13 +10986,11 @@ "base64-js": "1.3.0", "chalk": "1.1.3", "commander": "2.15.1", - "compression": "1.7.2", - "connect": "3.6.6", + "connect": "2.30.2", "create-react-class": "15.6.3", "debug": "2.6.9", "denodeify": "1.2.1", "envinfo": "3.11.1", - "errorhandler": "1.5.0", "event-target-shim": "1.1.1", "fbjs": "0.8.16", "fbjs-scripts": "0.8.3", @@ -10951,12 +10999,11 @@ "graceful-fs": "4.1.11", "inquirer": "3.3.0", "lodash": "4.17.5", - "metro": "0.28.0", - "metro-core": "0.28.0", + "metro": "0.24.7", + "metro-core": "0.24.7", "mime": "1.6.0", "minimist": "1.2.0", "mkdirp": "0.5.1", - "morgan": "1.9.0", "node-fetch": "1.7.3", "node-notifier": "5.2.1", "npmlog": "2.0.4", @@ -10967,12 +11014,11 @@ "promise": "7.3.1", "prop-types": "15.6.1", "react-clone-referenced-element": "1.0.1", - "react-devtools-core": "3.1.0", + "react-devtools-core": "3.0.0", "react-timer-mixin": "0.13.3", "regenerator-runtime": "0.11.1", "rimraf": "2.6.2", "semver": "5.5.0", - "serve-static": "1.13.2", "shell-quote": "1.6.1", "stacktrace-parser": "0.1.4", "whatwg-fetch": "1.1.1", @@ -11476,24 +11522,14 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "readdirp": { @@ -11619,14 +11655,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" }, - "regenerator-transform": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.3.tgz", - "integrity": "sha512-y2uxO/6u+tVmtEDIKo+tLCtI0GcbQr0OreosKgCd7HP4VypGjtTrw79DezuwT+W5QX0YWuvpeBOgumrepwM1kA==", - "requires": { - "private": "0.1.8" - } - }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", @@ -12075,6 +12103,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, "requires": { "path-parse": "1.0.5" } @@ -12090,6 +12119,15 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", + "requires": { + "depd": "1.1.2", + "on-headers": "1.0.1" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -12118,6 +12156,11 @@ "integrity": "sha1-JC124vpIXEjXUUFuZbfM5ZaWnpE=", "dev": true }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, "rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", @@ -12641,6 +12684,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, "requires": { "debug": "2.6.9", "depd": "1.1.2", @@ -12660,12 +12704,14 @@ "mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true } } }, @@ -12674,10 +12720,91 @@ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" }, + "serve-favicon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", + "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", + "requires": { + "etag": "1.7.0", + "fresh": "0.3.0", + "ms": "0.7.2", + "parseurl": "1.3.2" + }, + "dependencies": { + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" + } + } + }, + "serve-index": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", + "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", + "requires": { + "accepts": "1.2.13", + "batch": "0.5.3", + "debug": "2.2.0", + "escape-html": "1.0.3", + "http-errors": "1.3.1", + "mime-types": "2.1.18", + "parseurl": "1.3.2" + }, + "dependencies": { + "accepts": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.5.3" + } + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "requires": { + "inherits": "2.0.3", + "statuses": "1.3.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" + } + } + }, "serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, "requires": { "encodeurl": "1.0.2", "escape-html": "1.0.3", @@ -12726,7 +12853,8 @@ "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true }, "shallow-equals": { "version": "1.0.0", @@ -13471,6 +13599,14 @@ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "requires": { + "readable-stream": "1.1.14" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -13501,12 +13637,9 @@ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=" }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.1" - } + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "stringify-object": { "version": "2.4.0", @@ -13647,6 +13780,35 @@ "requires": { "readable-stream": "2.3.6", "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.1" + } + } } }, "time-stamp": { @@ -13787,6 +13949,11 @@ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -13825,7 +13992,6 @@ "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "2.1.18" @@ -13881,6 +14047,14 @@ "integrity": "sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4=", "dev": true }, + "uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "requires": { + "random-bytes": "1.0.0" + } + }, "ultron": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", @@ -14069,6 +14243,11 @@ "extsprintf": "1.3.0" } }, + "vhost": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", + "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=" + }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", diff --git a/package.json b/package.json index 3d6c50acd..051efb1d4 100644 --- a/package.json +++ b/package.json @@ -10,17 +10,17 @@ "analytics-react-native": "1.2.0", "babel-polyfill": "6.26.0", "base-64": "0.1.0", - "commonmark": "mattermost/commonmark.js", - "commonmark-react-renderer": "mattermost/commonmark-react-renderer", + "commonmark": "github:mattermost/commonmark.js#c9c29834005af6eedd1a979d913b75e34f16a83b", + "commonmark-react-renderer": "mattermost/commonmark-react-renderer#86fa63f898802953842526c2030f3b63c5d1ae7a", "deep-equal": "1.0.1", "fuse.js": "^3.2.0", "intl": "1.2.5", "jail-monkey": "0.2.0", - "mattermost-redux": "mattermost/mattermost-redux", + "mattermost-redux": "mattermost/mattermost-redux#c2cdd8fad33b97af4d0af2462b24f9cfd50a1913", "prop-types": "15.6.1", - "react": "^16.3.0-alpha.1", + "react": "16.3.1", "react-intl": "2.4.0", - "react-native": "0.54.4", + "react-native": "0.52.3", "react-native-animatable": "1.2.4", "react-native-bottom-sheet": "1.0.3", "react-native-button": "2.3.0", @@ -31,14 +31,14 @@ "react-native-drawer": "2.5.0", "react-native-exception-handler": "2.7.1", "react-native-fast-image": "4.0.0", - "react-native-fetch-blob": "enahum/react-native-fetch-blob.git", - "react-native-image-gallery": "enahum/react-native-image-gallery", + "react-native-fetch-blob": "enahum/react-native-fetch-blob.git#75d5abfa1886665d7eaa947e70b9297b981f0983", + "react-native-image-gallery": "enahum/react-native-image-gallery#7dd88b037cbb7ee36866585357b33bddb20bd12e", "react-native-image-picker": "0.26.7", "react-native-keyboard-aware-scroll-view": "0.5.0", "react-native-linear-gradient": "2.4.0", - "react-native-local-auth": "enahum/react-native-local-auth.git", + "react-native-local-auth": "enahum/react-native-local-auth.git#cc9ce2f468fbf7b431dfad3191a31aaa9227a6ab", "react-native-navigation": "1.1.426", - "react-native-notifications": "enahum/react-native-notifications.git", + "react-native-notifications": "enahum/react-native-notifications.git#663ffe3c4403b185093920c4551f117801499b73", "react-native-orientation": "3.1.3", "react-native-passcode-status": "1.1.0", "react-native-permissions": "1.1.1",