2015-12-15 00:10:49 +01:00
{
2017-07-26 01:00:06 +02:00
"loading" : {
"message" : "Loading..." ,
"description" : "Message shown on the loading screen before we've loaded any messages"
} ,
Full export, migration banner, and full migration workflow - behind flag (#1342)
* Add support for backup and restore
This first pass works for all stores except messages, pending some scaling
improvements.
// FREEBIE
* Import of messages and attachments
Properly sanitize filenames. Logging information that will help with
debugging but won't threaten privacy (no contact or group names),
where the on-disk directories have this information to make things
human-readable
FREEBIE
* First fully operational single-action export and import!
FREEBIE
* Add migration export flow
A banner alert leads to a blocking ui for the migration. We close the socket and
wait for incoming messages to drain before starting the export.
FREEBIE
* A number of updates for the export flow
1. We don't immediately pop the directory selection dialog box, instead
showing an explicit 'choose directory' button after explaining what is
about to happen
2. We show a 'submit debug log' button on most steps of the process
3. We handle export errors and encourage the user to double-check their
filesystem then submit their log
4. We are resilient to restarts during the process
5. We handle the user cancelling out of the directory selection dialog
differently from other errors.
6. The export process is now serialized: non-messages, then messages.
7. After successful export, show where the data is on disk
FREEBUE
* Put migration behind a flag
FREEBIE
* Shut down websocket before proceeding with export
FREEBIE
* Add MigrationView to test/index.html to fix test
FREEBIE
* Remove 'Submit Debug Log' button when the export process is complete
FREEBIE
* Create a 'Signal Export' directory below user-chosen dir
This cleans things up a bit so we don't litter the user's target
directory with lots of stuff.
FREEBIE
* Clarify MessageReceiver.drain() method comments
FREEBIE
* A couple updates for clarity - event names, else handling
Also the removal of wait(), which wasn't used anywhere.
FREEBIE
* A number of wording updates for the export flow
FREEBIE
* Export complete: put dir on its own line, make text selectable
FREEBIE
2017-08-28 22:06:10 +02:00
"migrationWarning" : {
"message" : "The Signal Desktop Chrome app has been deprecated. Would you like to migrate to the new Signal Desktop now?" ,
"description" : "Warning notification that this version of the app has been deprecated and the user must migrate"
} ,
"exportInstructions" : {
"message" : "The first step is to choose a directory to store this application's exported data. It will contain your message history and sensitive cryptographic data, so be sure to save it somewhere private." ,
"description" : "Description of the export process"
} ,
"migrate" : {
"message" : "Migrate" ,
"description" : "Button label to begin migrating this client to Electron"
} ,
"export" : {
"message" : "Choose directory" ,
"description" : "Button to allow the user to export all data from app as part of migration process"
} ,
"exportAgain" : {
"message" : "Export again" ,
"description" : "If user has already exported once, this button allows user to do it again if needed"
} ,
"exportError" : {
"message" : "Unfortunately, something went wrong during the export. First, double-check your target empty directory for write access and enough space. Then, please submit a debug log so we can help you get migrated!" ,
"description" : "Helper text if the user went forward on migrating the app, but ran into an error"
} ,
"confirmMigration" : {
"message" : "Start migration process? You will not be able to send or receive Signal messages from this application while the migration is in progress." ,
"description" : "Confirmation dialogue when beginning migration"
} ,
"migrationDisconnecting" : {
"message" : "Disconnecting..." ,
"description" : "Displayed while we wait for pending incoming messages to process"
} ,
"exporting" : {
"message" : "Please wait while we export your data. You can still use Signal on your phone and other devices during this time. You can also <a target='_blank' href='https://support.whispersystems.org/hc/en-us/articles/214507138-How-do-I-install-Signal-Desktop-'>install the new Signal Desktop</a>." ,
"description" : "Message shown on the migration screen while we export data"
} ,
"exportComplete" : {
"message" : "Your data has been exported to: <p><b>$location$</b></p> To complete the migration, <a target='_blank' href='https://support.whispersystems.org/hc/en-us/articles/214507138-How-do-I-install-Signal-Desktop-'>install the new Signal Desktop</a> and import this data." ,
"description" : "Message shown on the migration screen when we are done exporting data" ,
"placeholders" : {
"location" : {
"content" : "$1" ,
"example" : "/Users/someone/somewhere"
}
}
} ,
"selectedLocation" : {
"message" : "your selected location" ,
"description" : "Message shown as the export location if we didn't capture the target directory"
} ,
2017-07-26 01:00:06 +02:00
"upgradingDatabase" : {
"message" : "Upgrading database. This may take some time..." ,
"description" : "Message shown on the loading screen when we're changing database structure on first run of a new version"
} ,
"loadingMessages" : {
"message" : "Loading messages. $count$ so far..." ,
"description" : "Message shown on the loading screen when we're catching up on the backlog of messages" ,
"placeholders" : {
"count" : {
"content" : "$1" ,
"example" : "5"
}
}
} ,
2017-06-10 21:18:24 +02:00
"me" : {
"message" : "Me" ,
"description" : "The label for yourself when shown in a group member list"
} ,
2017-07-03 20:52:12 +02:00
"view" : {
"message" : "View" ,
"description" : "Used as a label on a button allowing user to see more information"
} ,
2017-05-13 00:16:02 +02:00
"youLeftTheGroup" : {
"message" : "You left the group" ,
"description" : "Displayed when a user can't send a message because they have left the group"
} ,
2017-05-19 03:33:35 +02:00
"scrollDown" : {
"message" : "Scroll to bottom of conversation" ,
"description" : "Alt text for button to take user down to bottom of conversation, shown when user scrolls up"
} ,
"messageBelow" : {
"message" : "New message below" ,
"description" : "Alt text for button to take user down to bottom of conversation with a new message out of screen"
} ,
"messagesBelow" : {
"message" : "New messages below" ,
"description" : "Alt text for button to take user down to bottom of conversation with more than one message out of screen"
} ,
2017-05-17 23:32:03 +02:00
"unreadMessage" : {
2017-05-23 00:12:53 +02:00
"message" : "1 Unread Message" ,
2017-05-17 23:32:03 +02:00
"description" : "Text for unread message separator, just one message"
} ,
"unreadMessages" : {
2017-05-23 00:12:53 +02:00
"message" : "$count$ Unread Messages" ,
2017-05-17 23:32:03 +02:00
"description" : "Text for unread message separator, with count" ,
"placeholders" : {
"count" : {
"content" : "$1" ,
"example" : "5"
}
}
} ,
2017-06-15 21:27:41 +02:00
"youMarkedAsVerified" : {
2017-06-30 02:32:40 +02:00
"message" : "You marked your safety number with $name$ as verified." ,
2017-06-15 21:27:41 +02:00
"description" : "Shown in the conversation history when the user marks a contact as verified." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"youMarkedAsNotVerified" : {
2017-06-30 02:32:40 +02:00
"message" : "You marked your safety number with $name$ as unverified." ,
2017-06-19 20:45:42 +02:00
"description" : "Shown in the conversation history when the user marks a contact as not verified, whether on the safety number screen or by dismissing a banner or dialog." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"youMarkedAsVerifiedOtherDevice" : {
2017-06-30 02:32:40 +02:00
"message" : "You marked your safety number with $name$ as verified from another device." ,
2017-06-19 20:45:42 +02:00
"description" : "Shown in the conversation history when we discover that the user marked a contact as verified on another device." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"youMarkedAsNotVerifiedOtherDevice" : {
2017-06-30 02:32:40 +02:00
"message" : "You marked your safety number with $name$ as not verified from another device." ,
2017-06-19 20:45:42 +02:00
"description" : "Shown in the conversation history when we discover that the user marked a contact as not verified on another device." ,
2017-06-15 21:27:41 +02:00
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
2017-06-17 01:48:06 +02:00
"membersNeedingVerification" : {
"message" : "Your safety numbers with these group members have changed since you last verified. Click a group member to see your new safety number with them." ,
"description" : "When there are multiple previously-verified group members with safety number changes, a banner will be shown. The list of contacts with safety number changes is shown, and this text introduces that list."
} ,
2017-06-14 02:36:32 +02:00
"changedSinceVerifiedMultiple" : {
2017-06-17 02:02:49 +02:00
"message" : "Your safety numbers with multiple group members have changed since you last verified. This could mean that someone is trying to intercept your communication or that they have simply reinstalled Signal." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown on confirmation dialog when user attempts to send a message"
} ,
"changedSinceVerified" : {
2017-06-17 02:02:49 +02:00
"message" : "Your safety number with $name$ has changed since you last verified. This could mean that someone is trying to intercept your communication or that $name$ has simply reinstalled Signal." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown on confirmation dialog when user attempts to send a message" ,
"placeholders" : {
2017-07-12 00:54:46 +02:00
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"changedRightAfterVerify" : {
2017-07-13 00:53:23 +02:00
"message" : "The safety number you are trying to verify has changed. Please review your new safety number with $name$. Remember, this change could mean that someone is trying to intercept your communication or that $name$ has simply reinstalled Signal." ,
2017-07-12 00:54:46 +02:00
"description" : "Shown on the safety number screen when the user has selected to verify/unverify a contact's safety number, and we immediately discover a safety number change" ,
"placeholders" : {
2017-06-14 02:36:32 +02:00
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"changedRecentlyMultiple" : {
2017-06-17 02:02:49 +02:00
"message" : "Your safety numbers with multiple group members have changed recently. This could mean that someone is trying to intercept your communication or that they have simply reinstalled Signal." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown on confirmation dialog when user attempts to send a message"
} ,
"changedRecently" : {
2017-06-17 02:02:49 +02:00
"message" : "Your safety number with $name$ has changed recently. This could mean that someone is trying to intercept your communication or that $name$ has simply reinstalled Signal." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown on confirmation dialog when user attempts to send a message" ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
2017-07-03 20:52:12 +02:00
"identityKeyErrorOnSend" : {
"message" : "Your safety number with $name$ has changed. This could either mean that someone is trying to intercept your communication or that $name$ has simply reinstalled Signal. You may wish to verify your saftey number with this contact." ,
"description" : "Shown when user clicks on a failed recipient in the message detail view after an identity key change" ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
2017-06-15 03:02:03 +02:00
} ,
2017-06-14 02:36:32 +02:00
"sendAnyway" : {
"message" : "Send Anyway" ,
2017-06-17 01:05:29 +02:00
"description" : "Used on a warning dialog to make it clear that it might be risky to send the message."
2017-06-14 02:36:32 +02:00
} ,
"noLongerVerified" : {
2017-06-17 02:08:47 +02:00
"message" : "Your safety number with $name$ has changed and is no longer verified. Click to show." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown in converation banner when user's safety number has changed, but they were previously verified." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"multipleNoLongerVerified" : {
2017-06-17 02:08:47 +02:00
"message" : "Your safety numbers with multiple members of this group have changed and are no longer verified. Click to show." ,
2017-06-14 02:36:32 +02:00
"description" : "Shown in conversation banner when more than one group member's safety number has changed, but they were previously verified."
} ,
2015-12-26 08:01:22 +01:00
"debugLogExplanation" : {
"message" : "This log will be posted publicly online for contributors to view. You may examine and edit it before submitting."
} ,
2016-04-10 05:36:50 +02:00
"reportIssue" : {
"message" : "Report an issue" ,
"description" : "Link to open the issue tracker"
} ,
2015-12-26 08:01:22 +01:00
"gotIt" : {
2016-03-03 13:08:01 +01:00
"message" : "Got it!" ,
"description" : "Label for a button that dismisses a dialog. The user clicks it to confirm that they understand the message in the dialog."
2015-12-26 08:01:22 +01:00
} ,
"submit" : {
"message" : "Submit"
} ,
2015-12-26 07:47:09 +01:00
"verifyContact" : {
2016-11-27 14:29:11 +01:00
"message" : "You may wish to $tag_start$ verify $tag_end$ your safety number with this contact." ,
2016-03-03 12:21:06 +01:00
"description" : "Use $tag_start$ and $tag_end$ to wrap the word or phrase in this sentence that the user should click on in order to navigate to the verification screen. These placeholders will be replaced with appropriate HTML code." ,
2016-02-15 07:41:52 +01:00
"placeholders" : {
"tag_start" : {
"content" : "<a class='verify' href='#'>"
} ,
"tag_end" : {
"content" : "</a>"
}
}
2015-12-26 07:47:09 +01:00
} ,
"acceptNewKey" : {
2016-03-23 20:33:50 +01:00
"message" : "Accept" ,
2016-11-27 14:29:11 +01:00
"description" : "Label for a button to accept a new safety number"
2015-12-26 07:47:09 +01:00
} ,
2015-12-26 07:00:54 +01:00
"verify" : {
2017-06-30 02:32:40 +02:00
"message" : "Mark as verified"
} ,
"unverify" : {
2017-07-06 01:33:25 +02:00
"message" : "Mark as not verified"
2015-12-26 07:00:54 +01:00
} ,
2017-06-17 01:05:29 +02:00
"isVerified" : {
2017-06-30 02:32:40 +02:00
"message" : "You have verified your safety number with $name$." ,
2017-06-17 01:05:29 +02:00
"description" : "Summary state shown at top of the safety number screen if user has verified contact." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
"isNotVerified" : {
2017-06-30 02:32:40 +02:00
"message" : "You have not verified your safety number with $name$." ,
2017-06-17 01:05:29 +02:00
"description" : "Summary state shown at top of the safety number screen if user has not verified contact." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
}
}
} ,
2017-06-14 21:29:32 +02:00
"verified" : {
"message" : "Verified"
} ,
2016-02-15 01:46:28 +01:00
"newIdentity" : {
2016-11-27 14:29:11 +01:00
"message" : "New safety number" ,
2016-03-23 20:33:50 +01:00
"description" : "Header for a key change dialog"
2016-02-15 01:46:28 +01:00
} ,
2016-02-15 07:41:52 +01:00
"identityChanged" : {
2016-11-27 14:29:11 +01:00
"message" : "Your safety number with this contact has changed. This could either mean that someone is trying to intercept your communication, or this contact simply reinstalled Signal. You may wish to verify the new safety number below."
2016-02-15 07:41:52 +01:00
} ,
2016-04-23 20:18:22 +02:00
"incomingError" : {
"message" : "Error handling incoming message."
} ,
2015-12-26 06:12:17 +01:00
"unsupportedAttachment" : {
"message" : "Unsupported attachment type. Click to save." ,
"description" : "Displayed for incoming unsupported attachment"
} ,
2017-05-12 01:45:26 +02:00
"clickToSave" : {
"message" : "Click to save" ,
"description" : "Hover text for attachment filenames"
} ,
"unnamedFile" : {
"message" : "Unnamed File" ,
"description" : "Hover text for attachment filenames"
} ,
"voiceMessage" : {
"message" : "Voice Message" ,
"description" : "Name for a voice message attachment"
} ,
2015-12-26 05:38:40 +01:00
"unsupportedFileType" : {
2015-12-26 06:12:17 +01:00
"message" : "Unsupported file type" ,
"description" : "Displayed for outgoing unsupported attachment"
2015-12-26 05:38:40 +01:00
} ,
2015-12-26 05:38:16 +01:00
"fileSizeWarning" : {
"message" : "Sorry, the selected file exceeds message size restrictions."
} ,
2015-12-26 03:16:38 +01:00
"disconnected" : {
2017-05-22 21:12:05 +02:00
"message" : "Disconnected" ,
"description" : "Displayed when the desktop client cannot connect to the server."
2015-12-26 03:16:38 +01:00
} ,
2017-01-04 04:37:56 +01:00
"connecting" : {
2017-05-22 21:12:05 +02:00
"message" : "Connecting" ,
"description" : "Displayed when the desktop client is currently connecting to the server."
2017-01-04 04:37:56 +01:00
} ,
"offline" : {
2017-05-22 21:12:05 +02:00
"message" : "Offline" ,
"description" : "Displayed when the desktop client has no network connection."
2017-01-04 04:37:56 +01:00
} ,
"checkNetworkConnection" : {
"message" : "Check your network connection." ,
"description" : "Obvious instructions for when a user's computer loses its network connection"
} ,
"attemptingReconnection" : {
"message" : "Attempting reconnect in $reconnect_duration_in_seconds$ seconds" ,
"placeholders" : {
"reconnect_duration_in_seconds" : {
"content" : "$1" ,
"example" : "10"
}
}
} ,
2015-12-26 03:15:04 +01:00
"submitDebugLog" : {
2016-10-08 04:15:56 +02:00
"message" : "Submit debug log" ,
2016-02-23 00:24:30 +01:00
"description" : "Menu item and header text for debug log modal, title case."
2015-12-26 03:15:04 +01:00
} ,
"searchForPeopleOrGroups" : {
2016-04-01 19:37:45 +02:00
"message" : "Search..." ,
2015-12-26 03:15:04 +01:00
"description" : "Placeholder text in the search input"
} ,
"welcomeToSignal" : {
"message" : "Welcome to Signal"
} ,
"selectAContact" : {
"message" : "Select a contact or group to start chatting."
} ,
2015-12-26 01:52:04 +01:00
"ok" : {
"message" : "OK"
} ,
"cancel" : {
"message" : "Cancel"
} ,
2015-12-25 07:55:53 +01:00
"failedToSend" : {
2016-02-13 00:16:57 +01:00
"message" : "Failed to send to some recipients. Check your network connection."
2015-12-25 07:55:53 +01:00
} ,
"error" : {
"message" : "Error"
} ,
"resend" : {
"message" : "Resend"
} ,
"messageDetail" : {
"message" : "Message Detail"
} ,
2017-07-13 00:19:07 +02:00
"delete" : {
"message" : "Delete"
} ,
"deleteWarning" : {
"message" : "Are you sure? Clicking 'delete' will permanently remove this message from this device."
} ,
"deleteMessage" : {
"message" : "Delete this message"
} ,
2016-01-08 19:36:34 +01:00
"from" : {
"message" : "From" ,
"description" : "Label for the sender of a message"
} ,
"to" : {
"message" : "To" ,
"description" : "Label for the receiver of a message"
} ,
2015-12-25 07:55:53 +01:00
"sent" : {
"message" : "Sent" ,
"description" : "Label for the time a message was sent"
} ,
"received" : {
"message" : "Received" ,
"description" : "Label for the time a message was received"
} ,
2015-12-25 07:50:27 +01:00
"sendMessage" : {
"message" : "Send a message" ,
"description" : "Placeholder text in the message entry field"
} ,
2017-06-10 21:18:24 +02:00
"groupMembers" : {
"message" : "Group members"
} ,
"showMembers" : {
"message" : "Show members"
2015-12-25 07:50:27 +01:00
} ,
"resetSession" : {
2016-10-08 04:15:56 +02:00
"message" : "Reset session" ,
2016-03-03 12:59:11 +01:00
"description" : "This is a menu item for resetting the session, using the imperative case, as in a command."
2015-12-25 07:50:27 +01:00
} ,
2017-06-10 00:22:39 +02:00
"showSafetyNumber" : {
2017-06-10 21:18:24 +02:00
"message" : "Show safety number"
} ,
"verifyHelp" : {
"message" : "If you wish to verify the security of your end-to-end encryption with $name$, compare the numbers above with the numbers on their device." ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "John"
}
}
} ,
2016-01-18 01:18:55 +01:00
"theirIdentityUnknown" : {
2016-11-27 14:29:11 +01:00
"message" : "You haven't exchanged any messages with this contact yet. Your safety number with them will be available after the first message."
2016-01-18 01:18:55 +01:00
} ,
2015-12-25 07:50:27 +01:00
"deleteMessages" : {
2016-10-08 04:15:56 +02:00
"message" : "Delete messages" ,
2016-02-23 00:24:30 +01:00
"description" : "Menu item for deleting messages, title case."
2015-12-25 07:52:50 +01:00
} ,
2016-04-23 20:35:04 +02:00
"deleteConversationConfirmation" : {
"message" : "Permanently delete this conversation?" ,
"description" : "Confirmation dialog text that asks the user if they really wish to delete the conversation. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone."
} ,
2015-12-25 07:52:50 +01:00
"sessionEnded" : {
2016-03-03 12:59:11 +01:00
"message" : "Secure session reset" ,
"description" : "This is a past tense, informational message. In other words, your secure session has been reset."
2016-01-16 13:59:01 +01:00
} ,
"installWelcome" : {
"message" : "Welcome to Signal Desktop" ,
"description" : "Welcome title on the install page"
} ,
"installTagline" : {
"message" : "Privacy is possible. Signal makes it easy." ,
2017-06-10 00:22:39 +02:00
"description" : "Tagline displayed under 'installWelcome' string on the install page"
2016-01-16 13:59:01 +01:00
} ,
"installGetStartedButton" : {
"message" : "Get started"
} ,
"installSignalLink" : {
2016-09-01 23:04:17 +02:00
"message" : "First, install <a $a_params$>Signal</a> on your Android phone.<br /> We'll link your devices and keep your messages in sync." ,
"description" : "Prompt the user to install Signal on Android before linking" ,
2016-01-17 11:54:34 +01:00
"placeholders" : {
2016-09-01 23:04:17 +02:00
"a_params" : {
2016-01-17 11:54:34 +01:00
"content" : "$1" ,
"example" : "href='http://example.com'"
}
}
2016-01-16 13:59:01 +01:00
} ,
2016-08-31 22:38:11 +02:00
"installSignalLinks" : {
"message" : "First, install Signal on your <a $play_store$>Android</a> or <a $app_store$>iPhone</a>.<br /> We'll link your devices and keep your messages in sync." ,
"description" : "Prompt the user to install Signal on their phone before linking" ,
"placeholders" : {
"play_store" : {
"content" : "$1" ,
"example" : "href='http://example.com'"
} ,
"app_store" : {
2016-09-27 20:53:40 +02:00
"content" : "$2" ,
2016-08-31 22:38:11 +02:00
"example" : "href='http://example.com'"
}
}
} ,
"installGotIt" : {
"message" : "Got it" ,
"description" : "Button for the user to confirm that they have Signal installed."
} ,
2016-01-16 13:59:01 +01:00
"installIHaveSignalButton" : {
2016-09-01 23:04:17 +02:00
"message" : "I have Signal for Android" ,
"description" : "Button for the user to confirm that they have Signal for Android"
2016-01-16 13:59:01 +01:00
} ,
"installFollowUs" : {
2016-01-17 11:54:34 +01:00
"message" : "<a $a_params$>Follow us</a> for updates about multi-device support for iOS." ,
"placeholders" : {
"a_params" : {
"content" : "$1" ,
"example" : "href='http://example.com'"
}
}
2016-01-16 13:59:01 +01:00
} ,
"installAndroidInstructions" : {
2016-04-08 22:54:18 +02:00
"message" : "Open Signal on your phone and navigate to Settings > Linked devices. Tap the button to add a new device, then scan the code above."
2016-01-16 13:59:01 +01:00
} ,
"installConnecting" : {
"message" : "Connecting..." ,
"description" : "Displayed when waiting for the QR Code"
} ,
2016-02-10 01:21:42 +01:00
"installConnectionFailed" : {
"message" : "Failed to connect to server." ,
"description" : "Displayed when we can't connect to the server."
} ,
2016-01-16 13:59:01 +01:00
"installGeneratingKeys" : {
"message" : "Generating Keys"
} ,
"installSyncingGroupsAndContacts" : {
"message" : "Syncing groups and contacts"
} ,
"installComputerName" : {
"message" : "This computer's name will be" ,
"description" : "Text displayed before the input where the user can enter the name for this device."
} ,
"installLinkingWithNumber" : {
"message" : "Linking with" ,
"description" : "Text displayed before the phone number that the user is in the process of linking with"
} ,
"installFinalButton" : {
"message" : "Looking good" ,
"description" : "The final button for the install process, after the user has entered a name for their device"
} ,
"installTooManyDevices" : {
2016-01-19 14:20:30 +01:00
"message" : "Sorry, you have too many devices linked already. Try removing some."
2016-02-18 01:08:17 +01:00
} ,
"settings" : {
"message" : "Settings" ,
"description" : "Menu item and header for global settings"
} ,
2016-09-23 14:12:07 +02:00
"theme" : {
"message" : "Theme" ,
"description" : "Header for theme settings"
} ,
2016-03-11 20:49:21 +01:00
"notifications" : {
"message" : "Notifications" ,
"description" : "Header for notification settings"
} ,
2016-03-05 21:40:58 +01:00
"notificationSettingsDialog" : {
"message" : "When messages arrive, display notifications that reveal:" ,
"description" : "Explain the purpose of the notification settings"
} ,
2016-03-05 21:38:29 +01:00
"disableNotifications" : {
"message" : "Disable notifications" ,
2016-02-18 01:08:17 +01:00
"description" : "Label for disabling notifications"
} ,
"nameAndMessage" : {
2016-03-05 21:47:22 +01:00
"message" : "Both sender name and message" ,
2016-02-18 01:08:17 +01:00
"description" : "Label for setting notifications to display name and message text"
} ,
"noNameOrMessage" : {
2016-03-05 21:47:22 +01:00
"message" : "Neither name nor message" ,
2016-02-18 01:08:17 +01:00
"description" : "Label for setting notifications to display no name and no message text"
} ,
"nameOnly" : {
2016-03-05 21:47:22 +01:00
"message" : "Only sender name" ,
2016-02-18 01:08:17 +01:00
"description" : "Label for setting notifications to display sender name only"
} ,
"newMessage" : {
"message" : "New Message" ,
"description" : "Displayed in notifications for only 1 message"
} ,
"newMessages" : {
"message" : "New Messages" ,
"description" : "Displayed in notifications for multiple messages"
2016-03-19 00:21:55 +01:00
} ,
"restartSignal" : {
"message" : "Restart Signal" ,
"description" : "Menu item for restarting the program."
2016-03-22 22:47:17 +01:00
} ,
"messageNotSent" : {
"message" : "Message not sent." ,
"description" : "Informational label, appears on messages that failed to send"
2016-03-23 20:33:50 +01:00
} ,
2017-07-04 01:46:39 +02:00
"someRecipientsFailed" : {
2017-07-13 01:27:36 +02:00
"message" : "Some recipients failed." ,
2017-08-08 18:58:00 +02:00
"description" : "When you send to multiple recipients via a group, and the message went to some recipients but not others."
2017-07-04 01:46:39 +02:00
} ,
2016-03-23 20:33:50 +01:00
"showMore" : {
"message" : "Details" ,
"description" : "Displays the details of a key change"
} ,
"showLess" : {
"message" : "Hide details" ,
"description" : "Hides the details of a key change"
2016-03-24 20:33:41 +01:00
} ,
"learnMore" : {
2016-11-27 14:29:11 +01:00
"message" : "Learn more about verifying safety numbers" ,
2016-10-28 08:13:22 +02:00
"description" : "Text that links to a support article on verifying safety numbers"
2016-04-04 05:06:27 +02:00
} ,
"expiredWarning" : {
"message" : "This version of Signal Desktop has expired. Please upgrade to the latest version to continue messaging." ,
"description" : "Warning notification that this version of the app has expired"
} ,
2017-05-26 18:50:23 +02:00
"androidMessageLengthWarning" : {
"message" : "Android clients will only receive the first 2000 characters of this message." ,
"description" : "Warning that long messages could not get received completely by Android clients."
} ,
2016-04-04 05:06:27 +02:00
"upgrade" : {
"message" : "Upgrade" ,
"description" : "Label text for button to upgrade the app to the latest version"
2016-04-16 05:07:35 +02:00
} ,
"mediaMessage" : {
"message" : "Media message" ,
"description" : "Description of a message that has an attachment and no text, displayed in the conversation list as a preview."
2016-05-26 03:57:06 +02:00
} ,
"unregisteredUser" : {
"message" : "Number is not registered" ,
"description" : "Error message displayed when sending to an unregistered user."
2016-06-17 00:33:18 +02:00
} ,
"sync" : {
"message" : "Contacts" ,
"description" : "Label for contact and group sync settings"
} ,
"syncExplanation" : {
"message" : "Import all Signal groups and contacts from your mobile device." ,
"description" : "Explanatory text for sync settings"
} ,
"lastSynced" : {
"message" : "Last import at" ,
"description" : "Label for date and time of last sync operation"
} ,
"syncNow" : {
"message" : "Import now" ,
"description" : "Label for a button that syncs contacts and groups from your phone"
} ,
"syncing" : {
"message" : "Importing..." ,
"description" : "Label for a disabled sync button while sync is in progress."
} ,
"syncFailed" : {
"message" : "Import failed. Make sure your computer and your phone are connected to the internet." ,
"description" : "Informational text displayed if a sync operation times out."
2016-06-26 20:36:36 +02:00
} ,
"timestamp_s" : {
2016-08-10 20:33:56 +02:00
"description" : "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble." ,
2016-06-26 20:36:36 +02:00
"message" : "now"
} ,
"timestamp_m" : {
2016-08-10 20:33:56 +02:00
"description" : "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble." ,
"message" : "1 minute"
2016-06-26 20:36:36 +02:00
} ,
"timestamp_h" : {
2016-08-10 20:33:56 +02:00
"description" : "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble." ,
2016-06-26 20:36:36 +02:00
"message" : "1 hour"
2016-08-12 02:42:00 +02:00
} ,
"timestampFormat_M" : {
"description" : "Timestamp format string for displaying month and day (but not the year) of a date within the current year, ex: use 'MMM D' for 'Aug 8', or 'D MMM' for '8 Aug'." ,
"message" : "MMM D"
2016-09-07 02:12:45 +02:00
} ,
"unblockToSend" : {
"message" : "Unblock this contact to send a message." ,
"description" : "Brief message shown when trying to message a blocked number"
2016-09-27 08:15:20 +02:00
} ,
2016-10-06 16:39:32 +02:00
"youChangedTheTimer" : {
"message" : "You set the timer to $time$." ,
"description" : "Message displayed when you change the message expiration timer in a conversation." ,
"placeholders" : {
"time" : {
"content" : "$1" ,
"example" : "10m"
}
}
} ,
"theyChangedTheTimer" : {
2016-09-27 08:15:20 +02:00
"message" : "$name$ set the timer to $time$." ,
2016-10-06 16:39:32 +02:00
"description" : "Message displayed when someone else changes the message expiration timer in a conversation." ,
2016-09-27 08:15:20 +02:00
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "Bob"
} ,
"time" : {
"content" : "$2" ,
"example" : "10m"
}
}
2016-09-29 01:47:57 +02:00
} ,
"timerOption_0_seconds" : {
"message" : "off" ,
"description" : "Label for option to turn off message expiration in the timer menu"
} ,
"timerOption_5_seconds" : {
"message" : "5 seconds" ,
"description" : "Label for a selectable option in the message expiration timer menu"
} ,
"timerOption_10_seconds" : {
"message" : "10 seconds" ,
"description" : "Label for a selectable option in the message expiration timer menu"
} ,
"timerOption_30_seconds" : {
"message" : "30 seconds" ,
"description" : "Label for a selectable option in the message expiration timer menu"
} ,
"timerOption_1_day" : {
"message" : "1 day" ,
"description" : "Label for a selectable option in the message expiration timer menu"
} ,
"timerOption_1_week" : {
"message" : "1 week" ,
"description" : "Label for a selectable option in the message expiration timer menu"
} ,
"disappearingMessages" : {
"message" : "Disappearing messages" ,
"description" : "Conversation menu option to enable disappearing messages"
} ,
2016-10-03 04:27:09 +02:00
"timerOption_0_seconds_abbreviated" : {
"message" : "off" ,
2016-10-08 04:24:17 +02:00
"description" : "Short format indicating current timer setting in the conversation list snippet"
2016-10-03 04:27:09 +02:00
} ,
2016-09-29 01:47:57 +02:00
"timerOption_5_seconds_abbreviated" : {
"message" : "5s" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_10_seconds_abbreviated" : {
"message" : "10s" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_30_seconds_abbreviated" : {
"message" : "30s" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_1_minute_abbreviated" : {
"message" : "1m" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_5_minutes_abbreviated" : {
"message" : "5m" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_30_minutes_abbreviated" : {
"message" : "30m" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_1_hour_abbreviated" : {
"message" : "1h" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_6_hours_abbreviated" : {
"message" : "6h" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_12_hours_abbreviated" : {
"message" : "12h" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_1_day_abbreviated" : {
"message" : "1d" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-29 01:47:57 +02:00
} ,
"timerOption_1_week_abbreviated" : {
"message" : "1w" ,
2016-10-08 04:24:17 +02:00
"description" : "Very short format indicating current timer setting in the conversation header"
2016-09-30 00:23:32 +02:00
} ,
"timerSetTo" : {
"message" : "Timer set to $time$" ,
"description" : "Displayed in the conversation list when the timer is updated." ,
"placeholders" : {
"time" : {
"content" : "$1" ,
"example" : "1w"
}
}
2016-10-04 05:22:41 +02:00
} ,
2017-01-28 20:33:57 +01:00
"audioNotificationDescription" : {
"message" : "Play audio notification" ,
"description" : "Description for audio notification setting"
} ,
2016-09-18 08:55:05 +02:00
"keychanged" : {
2017-06-15 20:09:54 +02:00
"message" : "Your safety number with $name$ has changed. Click to show." ,
2016-09-18 08:55:05 +02:00
"description" : "" ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "John"
}
}
2016-09-19 00:16:39 +02:00
} ,
"yourSafetyNumberWith" : {
2017-05-24 00:22:02 +02:00
"message" : "Your safety number with $name$:" ,
2016-09-19 00:16:39 +02:00
"description" : "Heading for safety number view" ,
"placeholders" : {
"name" : {
"content" : "$1" ,
"example" : "John"
}
}
2016-11-17 17:21:03 +01:00
} ,
"themeAndroidDark" : {
"message" : "Android (dark)" ,
"description" : "Label text for dark Android theme"
2017-02-03 22:29:36 +01:00
} ,
"newContact" : {
"message" : "Click to create new contact" ,
"description" : ""
} ,
"newPhoneNumber" : {
"message" : "Enter a phone number to add a contact." ,
"description" : "Placeholder for adding a new number to a contact"
} ,
"invalidNumberError" : {
"message" : "Invalid number" ,
"description" : "When a person inputs a number that is invalid"
2017-04-13 01:46:51 +02:00
} ,
"unlinkedWarning" : {
"message" : "Relink Signal Desktop to your mobile device to continue messaging."
} ,
"unlinked" : {
"message" : "Unlinked"
} ,
"relink" : {
"message" : "Relink"
2016-08-05 22:41:23 +02:00
}
2015-12-15 00:10:49 +01:00
}