Commit 288bb85a authored by Derrick Anderson's avatar Derrick Anderson
Browse files

Merge remote-tracking branch 'origin/release-4.10' into merge410rc2

parents 807e36f2 613f9f46
......@@ -4,13 +4,18 @@
import SchemaAdminSettings from 'components/admin_console/schema_admin_settings.jsx';
export default class CustomPluginSettings extends SchemaAdminSettings {
componentWillReceiveProps = (nextProps) => {
if (nextProps.schema !== this.props.schema) {
constructor(props) {
super(props);
this.isPlugin = true;
}
componentWillReceiveProps(nextProps) {
if (!this.props.schema && nextProps.schema) {
this.setState(this.getStateFromConfig(nextProps.config, nextProps.schema));
}
}
getConfigFromState = (config) => {
getConfigFromState(config) {
const schema = this.props.schema;
if (schema) {
......@@ -23,14 +28,19 @@ export default class CustomPluginSettings extends SchemaAdminSettings {
const settings = schema.settings || [];
settings.forEach((setting) => {
const lowerKey = setting.key.toLowerCase();
configSettings[lowerKey] = this.state[lowerKey];
const value = this.state[lowerKey] || setting.default;
if (value == null) {
Reflect.deleteProperty(configSettings, lowerKey);
} else {
configSettings[lowerKey] = value;
}
});
}
return config;
}
getStateFromConfig = (config, schema = this.props.schema) => {
getStateFromConfig(config, schema = this.props.schema) {
const state = {};
if (schema) {
......
......@@ -459,7 +459,12 @@ export default class SchemaAdminSettings extends AdminSettings {
if (schema.settings) {
schema.settings.forEach((setting) => {
if (this.buildSettingFunctions[setting.type] && !this.isHidden(setting)) {
settingsList.push(this.buildSettingFunctions[setting.type](setting));
// This is a hack required as plugin settings are case insensitive
let s = setting;
if (this.isPlugin) {
s = {...setting, key: setting.key.toLowerCase()};
}
settingsList.push(this.buildSettingFunctions[setting.type](s));
}
});
}
......@@ -496,7 +501,7 @@ export default class SchemaAdminSettings extends AdminSettings {
render = () => {
const schema = this.props.schema;
if (schema.component) {
if (schema && schema.component) {
const CustomComponent = schema.component;
return (<CustomComponent {...this.props}/>);
}
......
......@@ -5,18 +5,19 @@ import PropTypes from 'prop-types';
import React from 'react';
import {OverlayTrigger} from 'react-bootstrap';
import {Client4} from 'mattermost-redux/client';
import {displayUsername} from 'mattermost-redux/utils/user_utils';
import Pluggable from 'plugins/pluggable';
import ProfilePopover from 'components/profile_popover';
import * as Utils from 'utils/utils.jsx';
export default class AtMention extends React.PureComponent {
static propTypes = {
children: PropTypes.node,
currentUserId: PropTypes.string.isRequired,
hasMention: PropTypes.bool,
isRHS: PropTypes.bool,
mentionName: PropTypes.string.isRequired,
teammateNameDisplay: PropTypes.string.isRequired,
usersByUsername: PropTypes.object.isRequired,
};
......@@ -49,7 +50,7 @@ export default class AtMention extends React.PureComponent {
getUserFromMentionName(props) {
const usersByUsername = props.usersByUsername;
let mentionName = props.mentionName;
let mentionName = props.mentionName.toLowerCase();
while (mentionName.length > 0) {
if (usersByUsername.hasOwnProperty(mentionName)) {
......@@ -69,7 +70,7 @@ export default class AtMention extends React.PureComponent {
render() {
if (!this.state.user) {
return <span>{'@' + this.props.mentionName}</span>;
return <React.Fragment>{this.props.children}</React.Fragment>;
}
const user = this.state.user;
......@@ -99,7 +100,7 @@ export default class AtMention extends React.PureComponent {
</Pluggable>
}
>
<a className={className}>{'@' + Utils.getDisplayNameByUser(user)}</a>
<a className={className}>{'@' + displayUsername(user, this.props.teammateNameDisplay)}</a>
</OverlayTrigger>
{suffix}
</span>
......
......@@ -2,6 +2,7 @@
// See LICENSE.txt for license information.
import {connect} from 'react-redux';
import {getTeammateNameDisplaySetting} from 'mattermost-redux/selectors/entities/preferences';
import {getCurrentUserId, getUsersByUsername} from 'mattermost-redux/selectors/entities/users';
import AtMention from './at_mention.jsx';
......@@ -9,6 +10,7 @@ import AtMention from './at_mention.jsx';
function mapStateToProps(state) {
return {
currentUserId: getCurrentUserId(state),
teammateNameDisplay: getTeammateNameDisplaySetting(state),
usersByUsername: getUsersByUsername(state),
};
}
......
......@@ -31,8 +31,6 @@ const KeyCodes = Constants.KeyCodes;
export default class CreatePost extends React.Component {
static propTypes = {
isRhsOpen: PropTypes.bool.isRequired,
/**
* ref passed from channelView for EmojiPickerOverlay
*/
......@@ -681,9 +679,9 @@ export default class CreatePost extends React.Component {
replyToLastPost = (e) => {
e.preventDefault();
const latestReplyablePostId = this.props.latestReplyablePostId;
const isRhsOpen = this.props.isRhsOpen;
if (isRhsOpen) {
document.getElementById('reply_textbox').focus();
const replyBox = document.getElementById('reply_textbox');
if (replyBox) {
replyBox.focus();
}
if (latestReplyablePostId) {
this.props.actions.selectPostFromRightHandSideSearchByPostId(latestReplyablePostId);
......
......@@ -28,7 +28,7 @@ import {Posts} from 'mattermost-redux/constants';
import {emitUserPostedEvent, postListScrollChangeToBottom} from 'actions/global_actions.jsx';
import {createPost, setEditingPost} from 'actions/post_actions.jsx';
import {selectPostFromRightHandSideSearchByPostId} from 'actions/views/rhs';
import {getPostDraft, getIsRhsOpen} from 'selectors/rhs';
import {getPostDraft} from 'selectors/rhs';
import {setGlobalItem, actionOnGlobalItemsWithPrefix} from 'actions/storage';
import {openModal} from 'actions/views/modals';
import {Constants, Preferences, StoragePrefixes, TutorialSteps, UserStatuses} from 'utils/constants.jsx';
......@@ -50,7 +50,6 @@ function mapStateToProps() {
const tutorialStep = getInt(state, Preferences.TUTORIAL_STEP, getCurrentUserId(state), TutorialSteps.FINISHED);
const enableEmojiPicker = config.EnableEmojiPicker === 'true';
const enableConfirmNotificationsToChannel = config.EnableConfirmNotificationsToChannel === 'true';
const isRhsOpen = getIsRhsOpen(state);
const currentUserId = getCurrentUserId(state);
const userIsOutOfOffice = getStatusForUserId(state, currentUserId) === UserStatuses.OUT_OF_OFFICE;
......@@ -73,7 +72,6 @@ function mapStateToProps() {
enableEmojiPicker,
enableConfirmNotificationsToChannel,
maxPostSize: parseInt(config.MaxPostSize, 10) || Constants.DEFAULT_CHARACTER_LIMIT,
isRhsOpen,
userIsOutOfOffice,
};
};
......
......@@ -647,7 +647,9 @@ export default class Navbar extends React.Component {
</li>
</ChannelPermissionGate>
);
}
if (!ChannelStore.isDefault(channel)) {
deleteChannelOption = (
<ChannelPermissionGate
channelId={channel.id}
......@@ -668,9 +670,7 @@ export default class Navbar extends React.Component {
</li>
</ChannelPermissionGate>
);
}
if (!ChannelStore.isDefault(channel)) {
leaveChannelOption = (
<li role='presentation'>
<a
......
......@@ -319,7 +319,7 @@ export default class RhsThread extends React.Component {
let createAt = selected.create_at;
if (!createAt) {
createAt = this.props.posts[0].create_at;
createAt = this.props.posts[this.props.posts.length - 1].create_at;
}
const rootPostDay = Utils.getDateForUnixTicks(createAt);
let previousPostDay = rootPostDay;
......
......@@ -137,6 +137,7 @@ export default class SettingPicture extends Component {
<div
alt={`${imageContext} image preview`}
style={imageStyles}
className={`${imageContext}-img-preview`}
/>
</div>
</div>
......
......@@ -155,14 +155,14 @@ function makeChannelSearchFilter(channelPrefix) {
let searchString = channel.display_name;
if (channel.type === Constants.GM_CHANNEL || channel.type === Constants.DM_CHANNEL) {
const usersInChannel = usersInChannels[channel.id] || [];
const usersInChannel = usersInChannels[channel.id] || new Set([]);
// In case the channel is a DM and the profilesInChannel is not populated
if (!usersInChannel.length && channel.type === Constants.DM_CHANNEL) {
const userId = Utils.getUserIdFromChannelId(channel.name);
const user = getUser(curState, userId);
if (user) {
usersInChannel.push(userId);
usersInChannel.add(userId);
}
}
......
......@@ -436,27 +436,27 @@
"admin.email.smtpUsernameTitle": "SMTP-Server-Benutzername:",
"admin.email.testing": "Überprüfen...",
"admin.false": "falsch",
"admin.field_names.allowBannerDismissal": "Allow banner dismissal",
"admin.field_names.bannerColor": "Banner color",
"admin.field_names.bannerText": "Banner text",
"admin.field_names.bannerTextColor": "Banner text color",
"admin.field_names.enableBanner": "Enable Announcement banner",
"admin.field_names.enableCommands": "Enable Custom Slash Commands",
"admin.field_names.enableConfirmNotificationsToChannel": "Show @channel and @all confirmation dialog",
"admin.field_names.enableIncomingWebhooks": "Enable Incomming Webhooks",
"admin.field_names.enableOAuthServiceProvider": "Enable OAuth 2.0 Service Provider",
"admin.field_names.enableOutgoingWebhooks": "Enable Outgoing Webhooks",
"admin.field_names.enablePostIconOverride": "Enable integrations to override profile picture icons",
"admin.field_names.enablePostUsernameOverride": "Enable integrations to override usernames",
"admin.field_names.enableUserAccessTokens": "Enable Personal Access Tokens",
"admin.field_names.enableUserCreation": "Enable Account Creation",
"admin.field_names.maxChannelsPerTeam": "Max Channels Per Team",
"admin.field_names.maxNotificationsPerChannel": "Max Notifications Per Channel",
"admin.field_names.maxUsersPerTeam": "Max Users Per Team",
"admin.field_names.allowBannerDismissal": "Erlaube Verbergen des Banners:",
"admin.field_names.bannerColor": "Banner-Farbe:",
"admin.field_names.bannerText": "Banner-Text:",
"admin.field_names.bannerTextColor": "Banner-Textfarbe:",
"admin.field_names.enableBanner": "Aktiviere Ankündigungs-Banner:",
"admin.field_names.enableCommands": "Aktiviere benutzerdefinierte Slash-Befehle: ",
"admin.field_names.enableConfirmNotificationsToChannel": "Zeige den @channel- und @all-Bestätigungsdialog: ",
"admin.field_names.enableIncomingWebhooks": "Aktiviere eingehende Webhooks: ",
"admin.field_names.enableOAuthServiceProvider": "Aktiviere OAuth-2.0-Dienstprovider: ",
"admin.field_names.enableOutgoingWebhooks": "Aktiviere ausgehende Webhooks: ",
"admin.field_names.enablePostIconOverride": "Erlaube Integrationen das Profilbild zu ändern:",
"admin.field_names.enablePostUsernameOverride": "Erlaube Integrationen den Benutzernamen zu ändern:",
"admin.field_names.enableUserAccessTokens": "Persönliche Zugriffs-Token aktivieren: ",
"admin.field_names.enableUserCreation": "Aktiviere Kontoerstellung: ",
"admin.field_names.maxChannelsPerTeam": "Maximal Kanäle pro Team:",
"admin.field_names.maxNotificationsPerChannel": "Maximale Benachrichtigungen pro Kanal:",
"admin.field_names.maxUsersPerTeam": "Max Benutzer pro Team:",
"admin.field_names.postEditTimeLimit": "Edit post time limit",
"admin.field_names.restrictCreationToDomains": "Restrict account creation to specified email domains",
"admin.field_names.restrictDirectMessage": "Enable users to open Direct Message channels with",
"admin.field_names.teammateNameDisplay": "Teammate Name Display",
"admin.field_names.restrictCreationToDomains": "Begrenze Kontoerstellung auf spezifizierte E-Mail-Domains:",
"admin.field_names.restrictDirectMessage": "Erlaubte Benutzern einen Direktnachrichtenkanal zu öffnen mit:",
"admin.field_names.teammateNameDisplay": "Namensdarstellung der Teammitglider",
"admin.file.enableFileAttachments": "Dateiaustausch erlauben:",
"admin.file.enableFileAttachmentsDesc": "Wenn falsch, wird der Dateiaustausch auf dem Server deaktiviert. Alle Datei- und Bild-Uploads sind über alle Clients hinweg, inklusive Mobilgeräten, verboten.",
"admin.file.enableMobileDownloadDesc": "Wenn falsch, werden Datei-Downloads in mobilen Apps deaktiviert. Benutzer können immer noch Dateien über einen mobilen Browser herunterladen.",
......@@ -686,6 +686,7 @@
"admin.license.uploadDesc": "Laden Sie einen Mattermost Enterprise Edition Lizenzschlüssel hoch um den Server upzugraden. <a href=\"http://mattermost.com\" target='_blank'>Besuchen Sie uns online</a> um mehr über die Vorteile der Enterprise Edition zu erfahren oder um eine Lizenz zu kaufen.",
"admin.license.uploading": "Lizenz wird hochgeladen...",
"admin.log.consoleDescription": "Üblicherweise falsch bei Produktionsumgebungen. Entwickler können dieses auf wahr stellen um Logmeldungen auf der Konsole anhand der Konsolen-Level-Option zu erhalten. Wenn wahr, schreibt der Server die Meldungen in den Standard-Ausgabe-Stream (stdout).",
"admin.log.consoleJsonTitle": "Output console logs as JSON:",
"admin.log.consoleLogLevel": "Konsolen-Log-Level",
"admin.log.consoleTitle": "Logs auf der Konsole ausgeben: ",
"admin.log.enableDiagnostics": "Aktiviere Diagnose und Fehlerübermittlung:",
......@@ -693,25 +694,17 @@
"admin.log.enableWebhookDebugging": "Aktiviere Webhook-Debugging:",
"admin.log.enableWebhookDebuggingDescription": "Um den Request-Body von eingehenden Webhooks auf der Konsole auszugeben, aktivieren Sie diese Einstellung und setzen Sie {boldedConsoleLogLevel} auf 'DEBUG'. Deaktivieren Sie diese Einstellung, um die Request-Body-Informationen aus den Konsolen-Logs zu entfernen, wenn der Debug-Modus aktiviert ist.",
"admin.log.fileDescription": "Normalerweise wahr in Produktionsumgebungen. Wenn wahr, werden Ereignisse in die mattermost.log in den unter Log-Verzeichnis angegebene Ordner mitgeschrieben. Die Logs werden bei 10.000 Zeilen rotiert, in eine Datei im selben Verzeichnis archiviert und mit einem Datumsstempel und Seriennummer versehen. Zum Beispiel mattermost.2017-03-31.001.",
"admin.log.fileJsonTitle": "Output file logs as JSON:",
"admin.log.fileLevelDescription": "Diese Einstellung bestimmt auf welchem Detailgrad Lognachrichten in die Konsole geschrieben werden. FEHLER: Gibt nur Fehlernachrichten aus. INFO: Gibt Fehlernachrichten und Informationen zum Start und Initialisierung aus. DEBUG: Gibt einen hohen Detailgrad für Entwickler zur Fehlersuche aus.",
"admin.log.fileLevelTitle": "Datei Log-Level:",
"admin.log.fileTitle": "Logs in Datei schreiben: ",
"admin.log.formatDateLong": "Datum (2006/01/02)",
"admin.log.formatDateShort": "Datum (01/02/06)",
"admin.log.formatDescription": "Format der Lognachrichten. Wenn leer wird \"[%D %T] [%L] %M\" verwendet, wo:",
"admin.log.formatLevel": "Level (DEBG, INFO, EROR)",
"admin.log.formatMessage": "Nachricht",
"admin.log.formatPlaceholder": "Dateiformat eingeben",
"admin.log.formatSource": "Quelle",
"admin.log.formatTime": "Zeit (15:04:05 MST)",
"admin.log.formatTitle": "Log-Dateiformat:",
"admin.log.jsonDescription": "When true, logged events are written in a machine readable JSON format. Otherwise they are printed as plain text. Changing this setting requires a server restart before taking effect.",
"admin.log.levelDescription": "Diese Einstellung bestimmt auf welchem Detailgrad Lognachrichten in die Konsole geschrieben werden. ERROR: Gibt nur Fehlernachrichten aus. INFO: Gibt Fehlernachrichten und Informationen zum Start und Initialisierung aus. DEBUG: Gibt einen hohen Detailgrad für Entwickler zur Fehlersuche aus.",
"admin.log.levelTitle": "Konsolen-Log-Level:",
"admin.log.locationDescription": "Der Ort für die Log-Dateien. Wenn leer werden sie im ./logs Verzeichnis gespeichert. Bei Angabe eines Verzeichnisses muss dieses existieren und Mattermost muss Schreibberechtigungen darauf haben.",
"admin.log.locationDescription": "The location of the log files. If blank, they are stored in the ./logs directory. The path that you set must exist and Mattermost must have write permissions in it. Changing this setting requires a server restart before taking effect.",
"admin.log.locationPlaceholder": "Einen Dateiort eingeben",
"admin.log.locationTitle": "Log-Verzeichnis:",
"admin.log.logSettings": "Protokoll-Einstellungen",
"admin.log.noteDescription": "Changing properties other than <a href=\"#EnableWebhookDebugging\">Enable Webhook Debugging</a> and <a href=\"#EnableDiagnostics\">Enable Diagnostics and Error Reporting</a> in this section will require a server restart before taking effect.",
"admin.logs.bannerDesc": "Um Benutzer nach Benutzer-ID oder Token-ID zu suchen, wechseln Sie zu Reporting > Benutzer und fügen die ID in den Suchfilter ein.",
"admin.logs.next": "Weiter",
"admin.logs.prev": "Zurück",
......@@ -1018,6 +1011,7 @@
"admin.service.webhooksTitle": "Aktiviere eingehende Webhooks: ",
"admin.service.writeTimeout": "Schreibe-Zeitüberschreitung:",
"admin.service.writeTimeoutDescription": "Wenn HTTP verwendet wird (unsicher), ist dies die maximale erlaubte Zeit vom Ende des Lesens der Anfrage bis die Antwort geschrieben wurde. Wenn HTTPS verwendet wird ist es die komplette Zeit von Verbindungsannahme bis die Antwort geschrieben wurde.",
"admin.set_by_env": "This setting has been set through an environment variable. It cannot be changed through the System Console.",
"admin.sidebar.advanced": "Erweitert",
"admin.sidebar.audits": "Compliance und Prüfung",
"admin.sidebar.authentication": "Authentifizierung",
......@@ -2309,17 +2303,32 @@
"mobile.video.save_error_title": "Fehler beim Speichern des Videos",
"mobile.video_playback.failed_description": "Beim Abspielen des Videos ist ein Fehler aufgetreten.\n",
"mobile.video_playback.failed_title": "Videowiedergabe fehlgeschlagen",
"modal.manaul_status.ask": "Nicht wieder nachfragen",
"modal.manaul_status.button": "Ja, meinen Status auf \"Online\" setzen",
"modal.manaul_status.message": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manaul_status.title_": "Ihr Status ist auf \"{status}\" gesetzt",
"modal.manaul_status.title_away": "Ihr Status ist auf \"Abwesend\" gesetzt",
"modal.manaul_status.title_dnd": "Ihr Statuts ist auf \"Nicht stören\" gesetzt",
"modal.manaul_status.title_offline": "Ihr Status wurde auf \"Offline\" gesetzt",
"modal.manual_status.ask": "Nicht wieder nachfragen",
"modal.manual_status.auto_responder.message_": "Would you like to switch your status to \"{status}\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_away": "Would you like to switch your status to \"Away\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?",
"modal.manual_status.button_": "Ja, meinen Status auf \"Online\" setzen",
"modal.manual_status.button_away": "Ja, meinen Status auf \"Online\" setzen",
"modal.manual_status.button_dnd": "Yes, set my status to \"Do Not Disturb\"",
"modal.manual_status.button_offline": "Ja, meinen Status auf \"Online\" setzen",
"modal.manual_status.button_online": "Ja, meinen Status auf \"Online\" setzen",
"modal.manual_status.cancel_": "Nein, \"{status}\" beibehalten",
"modal.manual_status.cancel_away": "Nein, als \"Abwesend\" beibehalten",
"modal.manual_status.cancel_dnd": "Nein, als \"Nicht stören\" beibehalten",
"modal.manual_status.cancel_offline": "Nein, als \"Offline\" beibehalten",
"modal.manual_status.cancel_ooo": "No, keep it as \"Out of Office\"",
"modal.manual_status.message_": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manual_status.message_away": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manual_status.message_dnd": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manual_status.message_offline": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manual_status.message_online": "Möchten Sie Ihren Status auf \"Online\" umschalten?",
"modal.manual_status.title_": "Ihr Status ist auf \"{status}\" gesetzt",
"modal.manual_status.title_away": "Ihr Status ist auf \"Abwesend\" gesetzt",
"modal.manual_status.title_dnd": "Ihr Statuts ist auf \"Nicht stören\" gesetzt",
"modal.manual_status.title_offline": "Ihr Status wurde auf \"Offline\" gesetzt",
"modal.manual_status.title_ooo": "Ihr Status wurde auf \"Offline\" gesetzt",
"more_channels.close": "Schließen",
"more_channels.create": "Neuen Kanal erstellen",
"more_channels.createClick": "Klicken Sie auf 'Neuen Kanal erstellen' um einen Neuen zu erzeugen",
......@@ -2422,6 +2431,8 @@
"post_delete.okay": "OK",
"post_delete.someone": "Jemand hat die Nachricht gelöscht die Sie kommentieren wollten.",
"post_focus_view.beginning": "Anfang des Kanal-Archivs",
"post_info.auto_responder": "AUTOMATIC REPLY",
"post_info.bot": "BOT",
"post_info.del": "Löschen",
"post_info.edit": "Bearbeiten",
"post_info.message.visible": "(Nur für Sie sichtbar)",
......@@ -2538,7 +2549,7 @@
"setting_item_min.edit": "Bearbeiten",
"setting_picture.cancel": "Abbrechen",
"setting_picture.help.profile": "Ein Bild im BMP, JPG oder PNG-Format hochladen.",
"setting_picture.help.team": "Laden Sie ein Teamsymbol im BMP-, JPG oder PNG-Format hoch.",
"setting_picture.help.team": "Upload a team icon in BMP, JPG or PNG format.<br>Square images with a solid background color are recommended.",
"setting_picture.remove": "Remove this icon",
"setting_picture.save": "Speichern",
"setting_picture.select": "Auswählen",
......@@ -2685,6 +2696,8 @@
"status_dropdown.set_dnd.extra": "Deaktiviert Desktop- und Push-Benachrichtigungen",
"status_dropdown.set_offline": "Offline",
"status_dropdown.set_online": "Online",
"status_dropdown.set_ooo": "Out of Office",
"status_dropdown.set_ooo.extra": "Automatic Replies are enabled",
"suggestion.loading": "Lade...",
"suggestion.mention.all": "ACHTUNG: Dies erwähnt jeden im Kanal",
"suggestion.mention.channel": "Benachrichtigt jeden in diesem Kanal",
......@@ -2941,6 +2954,11 @@
"user.settings.modal.sidebar": "Seitenleiste",
"user.settings.modal.title": "Kontoeinstellungen",
"user.settings.notifications.allActivity": "Für alle Aktivitäten",
"user.settings.notifications.autoResponder": "Automatic Direct Message Replies",
"user.settings.notifications.autoResponderDefault": "Hello, I am out of office and unable to respond to messages.",
"user.settings.notifications.autoResponderEnabled": "Aktiviert:",
"user.settings.notifications.autoResponderHint": "Set a custom message that will be automatically sent in response to Direct Messages. Mentions in Public and Private Channels will not trigger the automated reply. Enabling Automatic Replies sets your status to Out of Office and disables email and push notifications.",
"user.settings.notifications.autoResponderPlaceholder": "Nachricht",
"user.settings.notifications.channelWide": "Kanalweite Erwähnungen \"@channel\", \"@all\", \"@here\"",
"user.settings.notifications.close": "Schließen",
"user.settings.notifications.comments": "Antwort-Benachrichtigungen",
......
......@@ -686,6 +686,7 @@
"admin.license.uploadDesc": "Upload a license key for Mattermost Enterprise Edition to upgrade this server. <a href=\"http://mattermost.com\" target='_blank'>Visit us online</a> to learn more about the benefits of Enterprise Edition or to purchase a key.",
"admin.license.uploading": "Uploading License...",
"admin.log.consoleDescription": "Typically set to false in production. Developers may set this field to true to output log messages to console based on the console level option. If true, server writes messages to the standard output stream (stdout). Changing this setting requires a server restart before taking effect.",
"admin.log.consoleJsonTitle": "Output console logs as JSON:",
"admin.log.consoleLogLevel": "Console Log Level",
"admin.log.consoleTitle": "Output logs to console: ",
"admin.log.enableDiagnostics": "Enable Diagnostics and Error Reporting:",
......@@ -693,11 +694,10 @@
"admin.log.enableWebhookDebugging": "Enable Webhook Debugging:",
"admin.log.enableWebhookDebuggingDescription": "To output the request body of incoming webhooks to the console, enable this setting and set {boldedConsoleLogLevel} to 'DEBUG'. Disable this setting to remove webhook request body information from console logs when in DEBUG mode.",
"admin.log.fileDescription": "Typically set to true in production. When true, logged events are written to the mattermost.log file in the directory specified in the File Log Directory field. The logs are rotated at 10,000 lines and archived to a file in the same directory, and given a name with a datestamp and serial number. For example, mattermost.2017-03-31.001. Changing this setting requires a server restart before taking effect.",
"admin.log.fileJsonTitle": "Output file logs as JSON:",
"admin.log.fileLevelDescription": "This setting determines the level of detail at which log events are written to the log file. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues.",
"admin.log.fileLevelTitle": "File Log Level:",
"admin.log.fileTitle": "Output logs to file: ",
"admin.log.consoleJsonTitle": "Output console logs as JSON:",
"admin.log.fileJsonTitle": "Output file logs as JSON:",
"admin.log.jsonDescription": "When true, logged events are written in a machine readable JSON format. Otherwise they are printed as plain text. Changing this setting requires a server restart before taking effect.",
"admin.log.levelDescription": "This setting determines the level of detail at which log events are written to the console. ERROR: Outputs only error messages. INFO: Outputs error messages and information around startup and initialization. DEBUG: Prints high detail for developers working on debugging issues.",
"admin.log.levelTitle": "Console Log Level:",
......@@ -2304,31 +2304,31 @@
"mobile.video_playback.failed_description": "An error occurred while trying to play the video.\n",
"mobile.video_playback.failed_title": "Video playback failed",
"modal.manual_status.ask": "Do not ask me again",
"modal.manual_status.auto_responder.message_": "Would you like to switch your status to \"{status}\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_away": "Would you like to switch your status to \"Away\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?",
"modal.manual_status.button_": "Yes, set my status to \"{status}\"",
"modal.manual_status.button_online": "Yes, set my status to \"Online\"",
"modal.manual_status.button_away": "Yes, set my status to \"Away\"",
"modal.manual_status.button_dnd": "Yes, set my status to \"Do Not Disturb\"",
"modal.manual_status.button_offline": "Yes, set my status to \"Offline\"",
"modal.manual_status.button_online": "Yes, set my status to \"Online\"",
"modal.manual_status.cancel_": "No, keep it as \"{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_ooo": "No, keep it as \"Out of Office\"",
"modal.manual_status.message_": "Would you like to switch your status to \"{status}\"?",
"modal.manual_status.message_online": "Would you like to switch your status to \"Online\"?",
"modal.manual_status.message_away": "Would you like to switch your status to \"Away\"?",
"modal.manual_status.message_dnd": "Would you like to switch your status to \"Do Not Disturb\"?",
"modal.manual_status.message_offline": "Would you like to switch your status to \"Offline\"?",
"modal.manual_status.auto_responder.message_": "Would you like to switch your status to \"{status}\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_away": "Would you like to switch your status to \"Away\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?",
"modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?",
"modal.manual_status.message_online": "Would you like to switch your status to \"Online\"?",
"modal.manual_status.title_": "Your status is set to \"{status}\"",
"modal.manual_status.title_away": "Your status is set to \"Away\"",
"modal.manual_status.title_dnd": "Your status is set to \"Do Not Disturb\"",
"modal.manual_status.title_offline": "Your status is set to \"Offline\"",
"modal.manual_status.title_ooo": "Your status is set to \"Out of Office\"",
"modal.manual_status.cancel_": "No, keep it as \"{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_ooo": "No, keep it as \"Out of Office\"",
"more_channels.close": "Close",
"more_channels.create": "Create New Channel",
"more_channels.createClick": "Click 'Create New Channel' to make a new one",
......@@ -2955,10 +2955,10 @@
"user.settings.modal.title": "Account Settings",
"user.settings.notifications.allActivity": "For all activity",
"user.settings.notifications.autoResponder": "Automatic Direct Message Replies",
"user.settings.notifications.autoResponderPlaceholder": "Message",
"user.settings.notifications.autoResponderHint": "Set a custom message that will be automatically sent in response to Direct Messages. Mentions in Public and Private Channels will not trigger the automated reply. Enabling Automatic Replies sets your status to Out of Office and disables email and push notifications.",
"user.settings.notifications.autoResponderDefault": "Hello, I am out of office and unable to respond to messages.",
"user.settings.notifications.autoResponderEnabled": "Enabled",
"user.settings.notifications.autoResponderHint": "Set a custom message that will be automatically sent in response to Direct Messages. Mentions in Public and Private Channels will not trigger the automated reply. Enabling Automatic Replies sets your status to Out of Office and disables email and push notifications.",
"user.settings.notifications.autoResponderPlaceholder": "Message",
"user.settings.notifications.channelWide": "Channel-wide mentions \"@channel\", \"@all\", \"@here\"",
"user.settings.notifications.close": "Close",
"user.settings.notifications.comments": "Reply notifications",
......
......@@ -436,27 +436,27 @@
"admin.email.smtpUsernameTitle": "Nombre de usuario del Servidor SMTP:",
"admin.email.testing": "Probando...",
"admin.false": "falso",
"admin.field_names.allowBannerDismissal": "Allow banner dismissal",
"admin.field_names.bannerColor": "Banner color",
"admin.field_names.bannerText": "Banner text",
"admin.field_names.bannerTextColor": "Banner text color",
"admin.field_names.enableBanner": "Enable Announcement banner",
"admin.field_names.enableCommands": "Enable Custom Slash Commands",
"admin.field_names.enableConfirmNotificationsToChannel": "Show @channel and @all confirmation dialog",
"admin.field_names.enableIncomingWebhooks": "Enable Incomming Webhooks",
"admin.field_names.enableOAuthServiceProvider": "Enable OAuth 2.0 Service Provider",
"admin.field_names.enableOutgoingWebhooks": "Enable Outgoing Webhooks",
"admin.field_names.enablePostIconOverride": "Enable integrations to override profile picture icons",
"admin.field_names.enablePostUsernameOverride": "Enable integrations to override usernames",
"admin.field_names.enableUserAccessTokens": "Enable Personal Access Tokens",
"admin.field_names.enableUserCreation": "Enable Account Creation",
"admin.field_names.maxChannelsPerTeam": "Max Channels Per Team",
"admin.field_names.maxNotificationsPerChannel": "Max Notifications Per Channel",
"admin.field_names.maxUsersPerTeam": "Max Users Per Team",
"admin.field_names.postEditTimeLimit": "Edit post time limit",
"admin.field_names.restrictCreationToDomains": "Restrict account creation to specified email domains",
"admin.field_names.restrictDirectMessage": "Enable users to open Direct Message channels with",
"admin.field_names.teammateNameDisplay": "Teammate Name Display",
"admin.field_names.allowBannerDismissal": "Permitir el descarte del anuncio",
"admin.field_names.bannerColor": "Color del anuncio",
"admin.field_names.bannerText": "Texto del anuncio",
"admin.field_names.bannerTextColor": "Color del texto del anuncio",
"admin.field_names.enableBanner": "Habilitar Anuncio",
"admin.field_names.enableCommands": "Habilitar Comandos de Barra Personalizados:",
"admin.field_names.enableConfirmNotificationsToChannel": "Mostrar dialogo de confirmación para @channel y @all",
"admin.field_names.enableIncomingWebhooks": "Habilitar Webhooks de Entrada",
"admin.field_names.enableOAuthServiceProvider": "Habilitar el Proveedor de Servicios de OAuth 2.0",
"admin.field_names.enableOutgoingWebhooks": "Habilitar Webhooks de Salida",
"admin.field_names.enablePostIconOverride": "Permitir a las integraciones reescribir imágenes de perfil",
"admin.field_names.enablePostUsernameOverride": "Permitir a las integraciones reescribir nombres de usuario",
"admin.field_names.enableUserAccessTokens": "Habilitar Tokens de Acceso Personales",
"admin.field_names.enableUserCreation": "Permitir la Creación de Cuentas",
"admin.field_names.maxChannelsPerTeam": "Máximo número de Canales por Equipo",
"admin.field_names.maxNotificationsPerChannel": "Cantidad máxima de Notificaciones por Canal",
"admin.field_names.maxUsersPerTeam": "Máximo de usuarios por equipo",
"admin.field_names.postEditTimeLimit": "Tiempo límite para editar un mensaje",
"admin.field_names.restrictCreationToDomains": "Restringir la creación de cuentas a los dominios de correo electrónico especificados",
"admin.field_names.restrictDirectMessage": "Habilitar a los usuarios tener canales de Mensajes Directos con",
"admin.field_names.teammateNameDisplay": "Visualización del nombre de los compañeros",
"admin.file.enableFileAttachments": "Permitir el Intercambio de Archivos:",
"admin.file.enableFileAttachmentsDesc": "Cuando es falso, desactiva el intercambio de archivos en el servidor. Cargar archivos o imágenes en los mensajes están prohibidas a través de los clientes y dispositivos, incluyendo móviles.",
"admin.file.enableMobileDownloadDesc": "Cuando es falso, se deshabilita la descarga de archivos en las aplicaciones móviles. Los usuarios pueden descargar archivos desde un navegador web para móviles.",
......@@ -685,33 +685,26 @@
"admin.license.upload": "Cargar",
"admin.license.uploadDesc": "Cargar una llave de licencia de Mattermost Edición Empresarial para mejorar este servidor. <a href=\"http://mattermost.com\" target='_blank'>Visítanos en línea</a>para conocer más acerca de los beneficios de la Edición Empresarial o para comprar una licencia.",
"admin.license.uploading": "Cargando Licencia...",
"admin.log.consoleDescription": "Normalmente asignado en falso en producción. Los desarolladores pueden configurar este campo en verdadero para ver de mensajes de consola basado en las opciones de nivel configuradas. Si es verdadera, el servidor escribirá los mensajes en una salida estandar (stdout).",
"admin.log.consoleDescription": "Normalmente asignado en falso en producción. Los desarolladores pueden configurar este campo en verdadero para ver de mensajes de consola basado en las opciones de nivel configuradas. Si es verdadero, el servidor escribirá los mensajes en una salida estándar (stdout). El cambio de este ajuste require que el servidor sea reiniciado para surgir efecto.",
"admin.log.consoleJsonTitle": "Salida de los registros por consola como JSON:",
"admin.log.consoleLogLevel": "Nivel de registros por consola:",
"admin.log.consoleTitle": "Imprimir registros en la consola: ",
"admin.log.enableDiagnostics": "Habilitar Diagnósticos e Informes de error:",
"admin.log.enableDiagnosticsDescription": "Activa esta función para mejorar la calidad y el rendimiento de Mattermost mediante el envío de informes de error y la información de diagnóstico a Mattermost, Inc. Lee nuestra <a href=\"https://about.mattermost.com/default-privacy-policy/\" target='_blank'>política de privacidad</a> para obtener más información.",
"admin.log.enableWebhookDebugging": "Habilitar Depuración de Webhook",
"admin.log.enableWebhookDebuggingDescription": "Para mostrar el cuerpo del mensaje de webhooks entrantes en la consola, habilita este ajuste y establece {boldedConsoleLogLevel} como 'DEBUG'. Deshabilita este ajuste para remover el cuerpo de los mensajes del webhook de la consola cuando se está en modo DEBUG.",
"admin.log.fileDescription": "Normalmente se asigna como verdadero en producción. Cuando es verdadero, los eventos son registrados en el archivo mattermost.log en el directorio especificado en el campo Directorio del Archivo de Registro. Los registros son rotados cada 10.000 líneas y archivados en el mismo directorio, y se les asigna como nombre de archivo una fecha y un número de serie. Por ejemplo, mattermost.2017-03-31.001.",
"admin.log.fileDescription": "Normalmente se asigna como verdadero en producción. Cuando es verdadero, los eventos son registrados en el archivo mattermost.log en el directorio especificado en el campo Directorio del Archivo de Registro. Los registros rotan cada 10.000 líneas y son archivados en el mismo directorio, y se les asigna como nombre de archivo una fecha y un número de serie. Por ejemplo, mattermost.2017-03-31.001. Cambiar este ajuste require que el servidor sea reiniciado para surgir efecto.",
"admin.log.fileJsonTitle": "Salida de los registros en archivo como JSON:",
"admin.log.fileLevelDescription": "Esta configuración determina el nivel de detalle con el cual los eventos serán escritos en el archivo de registro. ERROR: Sólo salida de mensajes de error. INFO: Salida de mensaje de error y información acerca de la partida e inicialización. DEBUG: Muestra un alto detalle para que los desarolladores que trabajan con eventos de depuración.",
"admin.log.fileLevelTitle": "Nivel registro:",
"admin.log.fileTitle": "Escribir registros en un archivo: ",
"admin.log.formatDateLong": "Fecha (2006/01/02)",
"admin.log.formatDateShort": "Fecha (01/02/06)",
"admin.log.formatDescription": "Formato del mensaje de registro de salida. Si es blanco se establecerá en \"[%D %T] [%L] %M\", donde:",
"admin.log.formatLevel": "Nivel (DEBG, INFO, EROR)",
"admin.log.formatMessage": "Mensaje",
"admin.log.formatPlaceholder": "Ingresar tu formato de archivo",
"admin.log.formatSource": "Fuente",
"admin.log.formatTime": "Hora (15:04:05 MST)",
"admin.log.formatTitle": "Formato del archivo de Registro:",
"admin.log.jsonDescription": "Cuando es verdadero, los eventos son registrados en formato JSON. En caso contrario se imprimirán como texto plano. Cambiar este ajuste require que el servidor sea reiniciado para surgir efecto.",
"admin.log.levelDescription": "Esta configuración determina el nivel de detalle con el cual los eventos serán escritos en la consola. ERROR: Sólo salida de mensajes de error. INFO: Salida de mensaje de error y información acerca de la partida e inicialización. DEBUG: Muestra un alto detalle para que los desarolladores que trabajan con eventos de depuración.",
"admin.log.levelTitle": "Nivel de log de consola:",
"admin.log.locationDescription": "La ubicación para los archivos de registro. Si se deja en blanco, serán almacenados en el directorio ./logs. La ruta especificada debe existir y Mattermost debe tener permisos de escritura.",
"admin.log.locationDescription": "La ubicación de los archivos de registro. Si se deja en blanco, serán almacenados en el directorio ./logs. La ruta asignada debe existir y Mattermost debe tener permiso de escritura en dicha ruta. Cambiar este ajuste require que el servidor sea reiniciado para surgir efecto.",
"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": "Cambiar cualquier otro ajuste que no sea <a href=\"#EnableWebhookDebugging\">Habilitar Depuración de WebHook</a> y <a href=\"#EnableDiagnostics\">Habilitar Reportes de Diagnostico y Error</a> 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",
......@@ -1018,6 +1011,7 @@
"admin.service.webhooksTitle": "Habilitar Webhooks de Entrada: ",
"admin.service.writeTimeout": "Tiempo de Espera de Escritura:",
"admin.service.writeTimeoutDescription": "Si se utiliza HTTP (inseguro), este es el tiempo máximo permitido desde que se termina de leer el encabezado de la solicitud hasta que la respuesta se escribe. Si se utiliza HTTPS, este el el tiempo total desde el momento en que se acepta la conexión hasta que la respuesta es escrita.",