From 00cf1da758070531f42bd420f5dd197aef1ce685 Mon Sep 17 00:00:00 2001 From: Strix Aluco Date: Mon, 29 May 2017 06:57:54 +0000 Subject: [PATCH 1/4] Added translation using Weblate (Ukrainian) --- src/i18n/strings/uk.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/uk.json diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/uk.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 7674a43e7fff3fcbec5dca88dfaf207f2fabfb6d Mon Sep 17 00:00:00 2001 From: Bamstam Date: Mon, 29 May 2017 13:13:56 +0000 Subject: [PATCH 2/4] Translated using Weblate (German) Currently translated at 100.0% (120 of 120 strings) Translation: Riot Web/Riot Web Translate-URL: https://translate.nordgedanken.de/projects/riot-web/riot-web/de/ --- src/i18n/strings/de_DE.json | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index d030e29d1a..cbe617b20c 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -5,15 +5,15 @@ "Files": "Dateien", "Notifications": "Benachrichtigungen", "Invite to this room": "In diesen Raum einladen", - "Filter room names": "Raum Namen filtern", + "Filter room names": "Raum-Namen filtern", "Start chat": "Neuen Chat starten", "Room directory": "Raum-Verzeichnis", "Create new room": "Neuen Raum erstellen", "Settings": "Einstellungen", - "powered by Matrix": "gebaut mit Matrix", + "powered by Matrix": "basierend auf Matrix", "Custom Server Options": "Optionen für eigenen Server", "Dismiss": "ausblenden", - "Failed to get protocol list from Home Server": "Fehler beim Abrufen der Protokollliste vom Home Server", + "Failed to get protocol list from Home Server": "Fehler beim Abrufen der Protokoll-Liste vom Home-Server", "The Home Server may be too old to support third party networks": "Der Home-Server ist eventuell zu alt, um Drittanbieter-Netzwerke zu unterstützen", "Directory": "Raum Verzeichnis", "#example:": "#beispiel:", @@ -21,25 +21,25 @@ "No rooms to show": "Keine Räume zum anzeigen", "World readable": "Jeder kann lesen", "Guests can join": "Gäste können beitreten", - "You are not receiving desktop notifications": "Du erhältst keine Desktop Benachrichtigungen", + "You are not receiving desktop notifications": "Du erhältst keine Desktop-Benachrichtigungen", "Enable them now": "Aktiviere diese jetzt", "Add an email address above to configure email notifications": "Füge eine E-Mail Adresse hinzu um Benachrichtigungen via E-Mail zu erhalten", "All notifications are currently disabled for all targets.": "Im Moment sind alle Benachrichtigungen für alle Ziele deaktiviert.", - "An error occurred whilst saving your email notification preferences.": "Ein Fehler trat auf während deine E-Mail Einstellungen gespeichert wurden.", + "An error occurred whilst saving your email notification preferences.": "Beim Speichern deiner E-Mail-Benachrichtigungseinstellungen ist ein Fehler aufgetreten.", "and remove": "und entfernen", "Can't update user notification settings": "Kann Benutzerdefinierte Einstellungen nicht aktualisieren", - "Couldn't find a matching Matrix room": "Kann keinen entsprechenden Matrix Raum finden", + "Couldn't find a matching Matrix room": "Konnte keinen entsprechenden Matrix-Raum finden", "delete the alias": "Lösche den Alias", "Delete the room alias": "Lösche den Raum Alias", "Direct Chat": "Privater Chat", "Drop here to": "Hier ablegen", - "Enable audible notifications in web client": "Aktiviere Audio Benachrichtigungen", - "Enable desktop notifications": "Aktiviere Desktop Benachrichtigungen", + "Enable audible notifications in web client": "Audio-Benachrichtigungen im Web-Client aktivieren", + "Enable desktop notifications": "Desktop-Benachrichtigungen aktivieren", "Enable email notifications": "Aktiviere E-Mail Benachrichtigungen", "Enable notifications for this account": "Aktiviere Benachrichtigungen für diesen Benutzer", - "Enter keywords separated by a comma:": "Trage Schlagworte, mit Komma getrennt, ein", + "Enter keywords separated by a comma:": "Kommagetrennte Schlagworte eingeben:", "Error": "Fehler", - "Error saving email notification preferences": "Fehler beim Speichern der E-Mail Benachrichtigungseinstellungen", + "Error saving email notification preferences": "Fehler beim Speichern der E-Mail-Benachrichtigungseinstellungen", "#example": "#Beispiel", "Failed to": "Konnte nicht", "Failed to add tag ": "Konnte Tag nicht hinzufügen ", @@ -55,18 +55,18 @@ "from the directory": "aus dem Verzeichnis", " from room": " aus dem Raum", "Guest users can't invite users. Please register to invite": "Gastnutzer können keine Nutzer einladen. Bitte registriere dich um Nutzer einzuladen", - "Keywords": "Suchbegriff", + "Keywords": "Schlüsselwörter", "Leave": "Verlassen", "Low Priority": "Niedrige Priorität", "Noisy": "Laut", - "Notification targets": "Benachrichtigungsziel", + "Notification targets": "Benachrichtigungsziele", "Notifications on the following keywords follow rules which can’t be displayed here:": "Benachrichtigungen zu folgenden Stichwörtern folgen Regeln, die hier nicht angezeigt werden können:", - "Notify for all other messages/rooms": "Benachrichtigung für alle anderen Mitteilungen/ Räume", + "Notify for all other messages/rooms": "Benachrichtigungen für alle anderen Mitteilungen/Räume aktivieren", "Operation failed": "Aktion fehlgeschlagen", "Reject": "ablehnen", - "Remove": "Entferne", + "Remove": "Entfernen", "remove": "Entferner", - "Remove from Directory": "Vom Raum Verzeichnis entfernen", + "Remove from Directory": "Aus dem Raum-Verzeichnis entfernen", "Riot does not know how to join a room on this network": "Riot weiß nicht, wie es einem Raum auf diesem Netzwerk beitreten soll", "Room not found": "Raum nicht gefunden", "There are advanced notifications which are not shown here": "Es existieren erweiterte Benachrichtigungen, welche hier nicht angezeigt werden", @@ -79,9 +79,9 @@ "Notify me for anything else": "Benachrichtige mich für alles andere", "Off": "Aus", "On": "An", - "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du hast sie eventuell auf einem anderen Client als Riot konfiguriert. Sie sind in Riot nicht anpassbar gelten aber trotzdem", + "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Du hast sie eventuell auf einem anderen Client als Riot konfiguriert. Sie können in Riot nicht verändert werden, gelten aber trotzdem", " to room": " an Raum", - "Drop here %(toAction)s": "%(toAction)s hierher ziehen", + "Drop here %(toAction)s": "Hierher ziehen: %(toAction)s", "All messages": "Alle Nachrichten", "All messages (loud)": "Alle Nachrichten (laut)", "Cancel Sending": "Senden abbrechen", @@ -107,7 +107,7 @@ "View Decrypted Source": "Entschlüsselten Quellcode ansehen", "View Source": "Quellcode ansehen", "You cannot delete this image. (%(code)s)": "Das Bild kann nicht gelöscht werden. (%(code)s)", - "You cannot delete this message. (%(code)s)": "Die Nachricht kann nicht gelöscht werden. (%(code)s)", + "You cannot delete this message. (%(code)s)": "Diese Nachricht kann nicht gelöscht werden. (%(code)s)", "Today": "Heute", "Wednesday": "Mittwoch", "Thursday": "Donnerstag", @@ -122,10 +122,10 @@ "Call invitation": "Anruf-Einladung", "Messages containing my display name": "Nachrichten, die meinen Anzeigenamen enthalten", "Messages containing my user name": "Nachrichten, die meinen Nutzernamen enthalten", - "Messages in group chats": "Nachrichten in Chat-Gruppen", + "Messages in group chats": "Nachrichten in Gruppen-Chats", "Messages in one-to-one chats": "Nachrichten in Eins-zu-Eins-Chats", "Messages sent by bot": "Nachrichten von Bots", "more": "mehr", "When I'm invited to a room": "Wenn ich in einen Raum eingeladen werde", - "customServer_text": "Du kannst die erweiterten Server-Optioen nutzen um dich an anderen Matrix-Servern mittels anderer Heimserver-URL anzumelden.
Dies erlaubt dir Riot mit einem existierendem Konto auf einem anderen Heimserver zu nutzen.

Du kannst auch einen benutzerdefinierten Identitäts-Server setzen, aber du wirst dann nicht in der Lage sein, Nutzer per E-Mail-Adresse einzuladen oder selbst mit E-Mail-Adresse eingeladen zu werden." + "customServer_text": "Du kannst die erweiterten Server-Optionen nutzen, um dich auf anderen Matrix-Servern anzumelden, indem du eine andere Heimserver-URL eingibst.
Dies ermöglicht es dir, Riot mit einem bereits existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.

Du kannst auch einen benutzerdefinierten Identitäts-Server eingeben, allerdings wirst du dann nicht in der Lage sein, andere Benutzer per E-Mail-Adresse einzuladen oder selbst Einladungen per E-Mail-Adresse zu erhalten." } From 83926eefce313ad3a4b652e93e696b5ee1ec565c Mon Sep 17 00:00:00 2001 From: Bhuvan Krishna Date: Tue, 30 May 2017 12:22:01 +0000 Subject: [PATCH 3/4] Added translation using Weblate (Telugu) --- src/i18n/strings/de_DE.json | 2 +- src/i18n/strings/es.json | 8 ++++---- src/i18n/strings/fr.json | 15 +++++++-------- src/i18n/strings/pt_BR.json | 7 ++++--- src/i18n/strings/te.json | 1 + 5 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 src/i18n/strings/te.json diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index cbe617b20c..f9deef5b32 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -91,7 +91,7 @@ "Failed to add tag %(tagName)s to room": "Das Hinzufügen des Tags %(tagName)s für den Raum ist fehlgeschlagen", "Failed to forget room %(errCode)s": "Das Entfernen des Raums %(errCode)s aus deiner Liste ist fehlgeschlagen", "Failed to remove tag %(tagName)s from room": "Das Entfernen des Tags %(tagName)s für den Raum ist fehlgeschlagen", - "Failed to set direct chat tag": "Fehler beim setzen der Direct Chat Kennzeichnung", + "Failed to set direct chat tag": "Fehler beim Setzen der \"Direkter Chat\"-Kennzeichnung", "Mentions only": "Nur, wenn du erwähnt wirst", "Mute": "Stummschalten", "Permalink": "Permanenter Link", diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index beef27c12f..616d628dae 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -13,10 +13,10 @@ "customServer_text": "Puedes utilizar las opciones de servidor personalizadas para iniciar sesión en otros servidores Matrix especificando una URL de Home server distinta.
Esto te permite usar Riot con una cuenta Matrix existente en un Home server distinto.

También puedes configurar un servidor de identidad personalizado, pero no podrás invitar usuarios por dirección de email, ni ser invitado por email por ti mismo.", "delete the alias": "borrar el alias", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar la sala alias %(alias)s y retirar %(name)s del directorio?", - "Direct Chat": "Chat Directo", + "Direct Chat": "Conversación directa", "Directory": "Directorio", "Download this file": "Descargar este archivo", - "Drop here %(toAction)s": "Soltar aquí %(toAction)s", + "Drop here %(toAction)s": "Suelta aquí para %(toAction)s", "Enable audible notifications in web client": "Habilitar notificaciones audibles en el cliente web", "Enable desktop notifications": "Habilitar notificaciones de escritorio", "Enable email notifications": "Habilitar notificaciones por email", @@ -28,11 +28,11 @@ "#example": "#ejemplo", "Failed to add tag %(tagName)s to room": "Error al añadir la etiqueta %(tagName)s a la sala", "Failed to change settings": "Error al cambiar la configuración", - "Failed to forget room %(errCode)s": "No se pudo olvidar la habitación %(errCode)s", + "Failed to forget room %(errCode)s": "Falló al olvidar la sala %(errCode)s", "Failed to update keywords": "Error al actualizar las palabras clave", "Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos de Home Server", "Failed to get public room list": "No se pudo obtener la lista de salas públicas", - "Failed to join the room": "No se puede unir a la habitación", + "Failed to join the room": "Falló al unirse a la sala", "Failed to remove tag %(tagName)s from room": "Error al eliminar la etiqueta %(tagName)s de la sala", "Failed to set direct chat tag": "Error al establecer la etiqueta de chat directo", "Failed to set Direct Message status of room": "No se pudo establecer el estado de Mensaje Directo de la sala", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index dfd38e868a..08d578a55c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -3,7 +3,7 @@ "All messages": "Tous les messages", "All messages (loud)": "Tous les messages (fort)", "All notifications are currently disabled for all targets.": "Toutes les notifications sont désactivées pour tous les appareils.", - "An error occurred whilst saving your email notification preferences.": "Une erreur est survenue lors de la sauvegarde de vos préférences de notifications par e-mail", + "An error occurred whilst saving your email notification preferences.": "Une erreur est survenue lors de la sauvegarde de vos préférences de notifications mail.", "Cancel Sending": "Annuler l'envoi", "Can't update user notification settings": "Impossible de mettre à jour les notifications utilisateur", "Close": "Fermer", @@ -67,10 +67,10 @@ "Failed to set Direct Message status of room": "Échec de la configuration de l'état de Message Direct du salon", "Fetching third party location failed": "Échec de la récupération de la localisation tierce", "Files": "Fichiers", - "Filter room names": "Filtrer les noms des salons", + "Filter room names": "Filtrer les salons par nom", "Forget": "Oublier", " from room": " du salon", - "Guest users can't invite users. Please register to invite": "Les invités ne peuvent démarrer une discussion. Merci de vous enregistrer pour pouvoir démarrer une discussion", + "Guest users can't invite users. Please register to invite": "Les visiteurs ne peuvent démarrer une discussion. Merci de vous enregistrer pour pouvoir démarrer une discussion", "Invite to this room": "Inviter dans ce salon", "Keywords": "Mots-clés", "Leave": "Quitter", @@ -83,7 +83,7 @@ "Messages in one-to-one chats": "Messages dans les conversations directes", "Messages sent by bot": "Messages envoyés par des robots", "more": "plus", - "Mute": "Muet", + "Mute": "Couper le son", "No rooms to show": "Aucun salon à afficher", "Noisy": "Sonore", "Notification targets": "Appareils recevant les notifications", @@ -104,7 +104,7 @@ "The Home Server may be too old to support third party networks": "Le Home Server semble trop ancien pour supporter des réseaux tiers", "There are advanced notifications which are not shown here": "Il existe une configuration avancée des notifications qui ne peut être affichée ici", "The server may be unavailable or overloaded": "Le serveur est indisponible ou surchargé", - "This room is inaccessible to guests. You may be able to join if you register": "Ce salon n'est pas ouvert aux invités. Vous pourrez peut-être le rejoindre si vous vous enregistrez", + "This room is inaccessible to guests. You may be able to join if you register": "Ce salon n'est pas ouvert aux visiteurs. Vous pourrez peut-être le rejoindre si vous vous enregistrez", "Unable to fetch notification target list": "Impossible de récupérer la liste des appareils recevant les notifications", "Unable to join network": "Impossible de rejoindre le réseau", "Unable to look up room ID from server": "Impossible de récupérer l'ID du salon sur le serveur", @@ -115,10 +115,9 @@ "When I'm invited to a room": "Quand je suis invité dans un salon", "World readable": "Visible par tout le monde", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Vous les avez probablement configurées dans un autre client que Riot. Vous ne pouvez pas les configurer dans Riot mais elles s'appliquent quand même", - "Guests can join": "Ouvert aux invités", + "Guests can join": "Ouvert aux visiteurs", " to room": " au salon", "Advanced notification settings": "Paramètres de notifications avancés", - "An error occurred whilst saving your email notification preferences.": "Une erreur est survenue lors de la sauvegarde de vos préférences de notifications mail.", - "customServer_text": "Vous pouvez utiliser l'option de serveur personnalisé pour vous connectez à d'autres serveurs Matrix, en spécifiant une adresse différente pour Home serveur.
Cela permet d'utiliser Riot avec un compte existant sur un Home serveur différent.

Vous pouvez aussi indiquer un serveur d'identité personnel mais vous ne pourrez plus inviter des utilisateurs par email, ou être invité par email.", + "customServer_text": "Vous pouvez utiliser l'option de serveur personnalisé pour vous connectez à d'autres serveurs Matrix, en spécifiant une adresse de homerserver différente.
Cela permet d'utiliser Riot avec un compte existant sur un homeserverdifférent.

Vous pouvez aussi indiquer un serveur d'identité personnel mais vous ne pourrez plus inviter des utilisateurs par email, ou être invité par email.", "Notifications on the following keywords follow rules which can’t be displayed here:": "Les notifications pour les mots clés suivant répondent à des critères qui ne peuvent pas être affichés ici :" } diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 545ed11a3d..a4297ad9d2 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -2,7 +2,7 @@ "Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar suas notificações por email", "All messages": "Todas as mensagens", "All messages (loud)": "Todas as mensagens (alto)", - "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desativadas para todos os destinos", + "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desabilitadas para todos os destinatários.", "An error occurred whilst saving your email notification preferences.": "Um erro ocorreu enquanto o sistema estava salvando suas preferências de notificação por email.", "Call invitation": "Convite para chamada", "Cancel Sending": "Cancelar o envio", @@ -116,8 +116,9 @@ "Saturday": "Sábado", "Today": "Hoje", "Yesterday": "Ontem", - "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desabilitadas para todos os destinatários.", "#example": "#exemplo", "Failed to remove tag %(tagName)s from room": "Não foi possível remover a marcação %(tagName)s desta sala", - "Welcome page": "Página de boas vindas" + "Welcome page": "Página de boas vindas", + "Advanced notification settings": "Configurações avançadas de notificação", + "customServer_text": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix, especificando uma URL de outro Servidor de Base. Isso permite que você use Riot com uma conta Matrix que exista em outro Servidor de Base. Você também pode configurar um servidor de Identidade personalizado, mas neste caso não poderá convidar usuárias(os) pelo endereço de e-mail, ou ser convidado(a) pelo seu endereço de e-mail." } diff --git a/src/i18n/strings/te.json b/src/i18n/strings/te.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/te.json @@ -0,0 +1 @@ +{} \ No newline at end of file From e15d070e8fe4f442c159876d04595b92cfa63374 Mon Sep 17 00:00:00 2001 From: RiotTranslate Date: Tue, 30 May 2017 13:11:04 +0000 Subject: [PATCH 4/4] [WEBLATE] fix issues. --- .../views/context_menus/MessageContextMenu.js | 31 +++++++++++++++++-- .../views/settings/Notifications.js | 1 + src/i18n/strings/pt.json | 1 - src/i18n/strings/pt_BR.json | 1 - 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index e135557209..56758b2f30 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -40,6 +40,31 @@ module.exports = React.createClass({ onFinished: React.PropTypes.func, }, + getInitialState: function() { + return { + canRedact: false, + }; + }, + + componentWillMount: function() { + MatrixClientPeg.get().on('RoomMember.powerLevel', this._checkCanRedact); + this._checkCanRedact(); + }, + + componentWillUnmount: function() { + const cli = MatrixClientPeg.get(); + if (cli) { + cli.removeListener('RoomMember.powerLevel', this._checkCanRedact); + } + }, + + _checkCanRedact: function() { + const cli = MatrixClientPeg.get(); + const room = cli.getRoom(this.props.mxEvent.getRoomId()); + const canRedact = room.currentState.maySendRedactionForEvent(this.props.mxEvent, cli.credentials.userId); + this.setState({canRedact}); + }, + onResendClick: function() { Resend.resend(this.props.mxEvent); if (this.props.onFinished) this.props.onFinished(); @@ -136,10 +161,10 @@ module.exports = React.createClass({ ); } - if (!eventStatus && !this.props.mxEvent.isRedacted()) { // sent and not redacted + if (this.state.canRedact) { redactButton = (
- { _t('Redact') } + { _t('Remove') }
); } @@ -206,7 +231,7 @@ module.exports = React.createClass({ externalURLButton = (
{ _t('Source URL') } + rel="noopener" target="_blank" onClick={ this.closeMenu }>{ _t('Source URL') }
); } diff --git a/src/components/views/settings/Notifications.js b/src/components/views/settings/Notifications.js index 11948acebe..74b9c24a74 100644 --- a/src/components/views/settings/Notifications.js +++ b/src/components/views/settings/Notifications.js @@ -178,6 +178,7 @@ module.exports = React.createClass({ Modal.createDialog(TextInputDialog, { title: _t('Keywords'), description: _t('Enter keywords separated by a comma:'), + button: _t('OK'), value: keywords, onFinished: function onFinished(should_leave, newValue) { diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 44041bc8fc..d55488059c 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -2,7 +2,6 @@ "Add an email address above to configure email notifications": "Adicione um endereço de email acima para configurar as notificações por email", "All messages": "Todas as mensagens", "All messages (loud)": "Todas as mensagens (alto)", - "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desativadas para todos os destinos", "An error occurred whilst saving your email notification preferences.": "Um erro ocorreu enquanto salvava suas preferências de notificação por email.", "Cancel Sending": "Cancelar o envio", "Can't update user notification settings": "Não é possível atualizar as preferências de notificação", diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index a4297ad9d2..7687d4c4c6 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -2,7 +2,6 @@ "Add an email address above to configure email notifications": "Insira um endereço de email no campo acima para configurar suas notificações por email", "All messages": "Todas as mensagens", "All messages (loud)": "Todas as mensagens (alto)", - "All notifications are currently disabled for all targets.": "Todas as notificações estão atualmente desabilitadas para todos os destinatários.", "An error occurred whilst saving your email notification preferences.": "Um erro ocorreu enquanto o sistema estava salvando suas preferências de notificação por email.", "Call invitation": "Convite para chamada", "Cancel Sending": "Cancelar o envio",