From 547f10bcbb9efa1d2f69e9a27f7330869f66ad67 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Thu, 1 Jun 2017 15:44:56 +0100 Subject: [PATCH] Add translations for slash command failures --- src/SlashCommands.js | 29 ++++++++++++------- .../views/rooms/MessageComposerInput.js | 2 +- .../views/rooms/MessageComposerInputOld.js | 2 +- src/i18n/strings/en_EN.json | 10 ++++++- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/SlashCommands.js b/src/SlashCommands.js index ae619a1359..185ea504ac 100644 --- a/src/SlashCommands.js +++ b/src/SlashCommands.js @@ -186,7 +186,7 @@ const commands = { if (targetRoomId) { break; } } if (!targetRoomId) { - return reject("Unrecognised room alias: " + roomAlias); + return reject(_t("Unrecognised room alias:") + ' ' + roomAlias); } } } @@ -303,14 +303,14 @@ const commands = { const device = MatrixClientPeg.get().getStoredDevice(userId, deviceId); if (!device) { - return reject(`Unknown (user, device) pair: (${userId}, ${deviceId})`); + return reject(_t(`Unknown (user, device) pair:`) + ` (${userId}, ${deviceId})`); } if (device.isVerified()) { if (device.getFingerprint() === fingerprint) { - return reject(`Device already verified!`); + return reject(_t(`Device already verified!`)); } else { - return reject(`WARNING: Device already verified, but keys do NOT MATCH!`); + return reject(_t(`WARNING: Device already verified, but keys do NOT MATCH!`)); } } @@ -322,12 +322,15 @@ const commands = { // Tell the user we verified everything! const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog"); Modal.createDialog(QuestionDialog, { - title: "Verified key", + title: _t("Verified key"), description: (

- The signing key you provided matches the signing key you received - from { userId }'s device { deviceId }. Device marked as verified. + { + _t("The signing key you provided matches the signing key you received " + + "from %(userId)s's device %(deviceId)s. Device marked as verified.", + {userId: userId, deviceId: deviceId}) + }

), @@ -336,9 +339,13 @@ const commands = { return success(); } else { - return reject(`WARNING: KEY VERIFICATION FAILED! The signing key for ${userId} and device - ${deviceId} is "${device.getFingerprint()}" which does not match the provided key - "${fingerprint}". This could mean your communications are being intercepted!`); + const fprint = device.getFingerprint(); + return reject( + _t('WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device' + + ' %(deviceId)s is "%(fprint)s" which does not match the provided key' + + ' "%(fingerprint)s". This could mean your communications are being intercepted!', + {deviceId: deviceId, fprint: fprint, userId: userId, fingerprint: fingerprint}) + ); } } } @@ -383,7 +390,7 @@ module.exports = { if (commands[cmd]) { return commands[cmd].run(roomId, args); } else { - return reject("Unrecognised command: " + input); + return reject(_t("Unrecognised command:") + ' ' + input); } } return null; // not a command diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index a79f71c92d..65148f91ef 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -506,7 +506,7 @@ export default class MessageComposerInput extends React.Component { var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createDialog(ErrorDialog, { title: _t("Server error"), - description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong") + "."), + description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong.")), }); }); } diff --git a/src/components/views/rooms/MessageComposerInputOld.js b/src/components/views/rooms/MessageComposerInputOld.js index b664ef4bd3..f6af20c03b 100644 --- a/src/components/views/rooms/MessageComposerInputOld.js +++ b/src/components/views/rooms/MessageComposerInputOld.js @@ -316,7 +316,7 @@ export default React.createClass({ var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createDialog(ErrorDialog, { title: _t("Server error"), - description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong") + "."), + description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong.")), }); }); } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 85e6343359..301e62c2db 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -215,6 +215,7 @@ "demote": "demote", "Deops user with given id": "Deops user with given id", "Default": "Default", + "Device already verified!": "Device already verified!", "Device ID": "Device ID", "Devices": "Devices", "Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room", @@ -436,7 +437,7 @@ "Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(", "Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big", "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.", - "Server unavailable, overloaded, or something else went wrong": "Server unavailable, overloaded, or something else went wrong", + "Server unavailable, overloaded, or something else went wrong.": "Server unavailable, overloaded, or something else went wrong.", "Session ID": "Session ID", "%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.", "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.", @@ -460,6 +461,7 @@ "tag direct chat": "tag direct chat", "The default role for new room members is": "The default role for new room members is", "The main address for this room is": "The main address for this room is", + "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.", "This action cannot be performed by a guest user. Please register to be able to do this": "This action cannot be performed by a guest user. Please register to be able to do this", "This email address is already in use": "This email address is already in use", "This email address was not found": "This email address was not found", @@ -521,8 +523,11 @@ "unknown device": "unknown device", "unknown error code": "unknown error code", "Unknown room %(roomId)s": "Unknown room %(roomId)s", + "Unknown (user, device) pair:": "Unknown (user, device) pair:", "unknown": "unknown", "Unmute": "Unmute", + "Unrecognised command:": "Unrecognised command:", + "Unrecognised room alias:": "Unrecognised room alias:", "uploaded a file": "uploaded a file", "Upload avatar": "Upload avatar", "Upload Failed": "Upload Failed", @@ -538,6 +543,7 @@ "Verification Pending": "Verification Pending", "Verification": "Verification", "verified": "verified", + "Verified key": "Verified key", "Video call": "Video call", "Voice call": "Voice call", "VoIP conference finished.": "VoIP conference finished.", @@ -545,6 +551,8 @@ "VoIP is unsupported": "VoIP is unsupported", "(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)", "Warning!": "Warning!", + "WARNING: Device already verified, but keys do NOT MATCH!": "WARNING: Device already verified, but keys do NOT MATCH!", + "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!", "Who can access this room?": "Who can access this room?", "Who can read history?": "Who can read history?", "Who would you like to add to this room?": "Who would you like to add to this room?",