messages.json 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  1. {
  2. "debugLogExplanation": {
  3. "message": "This log will be posted publicly online for contributors to view. You may examine and edit it before submitting."
  4. },
  5. "reportIssue": {
  6. "message": "Report an issue",
  7. "description": "Link to open the issue tracker"
  8. },
  9. "gotIt": {
  10. "message": "Got it!",
  11. "description": "Label for a button that dismisses a dialog. The user clicks it to confirm that they understand the message in the dialog."
  12. },
  13. "submit": {
  14. "message": "Submit"
  15. },
  16. "verifyContact": {
  17. "message": "You may wish to $tag_start$ verify $tag_end$ your safety number with this contact.",
  18. "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.",
  19. "placeholders": {
  20. "tag_start": {
  21. "content": "<a class='verify' href='#'>"
  22. },
  23. "tag_end": {
  24. "content": "</a>"
  25. }
  26. }
  27. },
  28. "acceptNewKey": {
  29. "message": "Accept",
  30. "description": "Label for a button to accept a new safety number"
  31. },
  32. "verify": {
  33. "message": "Verify"
  34. },
  35. "newIdentity": {
  36. "message": "New safety number",
  37. "description": "Header for a key change dialog"
  38. },
  39. "identityChanged": {
  40. "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 Cable. You may wish to verify the new safety number below."
  41. },
  42. "outgoingKeyConflict": {
  43. "message": "Your safety number with this contact has changed. Click to process and display."
  44. },
  45. "incomingKeyConflict": {
  46. "message": "Received message with a new safety number. Click to process and display."
  47. },
  48. "incomingError": {
  49. "message": "Error handling incoming message."
  50. },
  51. "unsupportedAttachment": {
  52. "message": "Unsupported attachment type. Click to save.",
  53. "description": "Displayed for incoming unsupported attachment"
  54. },
  55. "unsupportedFileType": {
  56. "message": "Unsupported file type",
  57. "description": "Displayed for outgoing unsupported attachment"
  58. },
  59. "fileSizeWarning": {
  60. "message": "Sorry, the selected file exceeds message size restrictions."
  61. },
  62. "disconnected": {
  63. "message": "Disconnected"
  64. },
  65. "submitDebugLog": {
  66. "message": "Submit debug log",
  67. "description": "Menu item and header text for debug log modal, title case."
  68. },
  69. "searchForPeopleOrGroups": {
  70. "message": "Search...",
  71. "description": "Placeholder text in the search input"
  72. },
  73. "welcomeToSignal": {
  74. "message": "Welcome to Cable"
  75. },
  76. "selectAContact": {
  77. "message": "Select a contact or group to start chatting."
  78. },
  79. "ok": {
  80. "message": "OK"
  81. },
  82. "cancel": {
  83. "message": "Cancel"
  84. },
  85. "failedToSend": {
  86. "message": "Failed to send to some recipients. Check your network connection."
  87. },
  88. "error": {
  89. "message": "Error"
  90. },
  91. "resend": {
  92. "message": "Resend"
  93. },
  94. "messageDetail": {
  95. "message": "Message Detail"
  96. },
  97. "from": {
  98. "message": "From",
  99. "description": "Label for the sender of a message"
  100. },
  101. "to": {
  102. "message": "To",
  103. "description": "Label for the receiver of a message"
  104. },
  105. "sent": {
  106. "message": "Sent",
  107. "description": "Label for the time a message was sent"
  108. },
  109. "received": {
  110. "message": "Received",
  111. "description": "Label for the time a message was received"
  112. },
  113. "sendMessage": {
  114. "message": "Send a message",
  115. "description": "Placeholder text in the message entry field"
  116. },
  117. "members": {
  118. "message": "Members"
  119. },
  120. "resetSession": {
  121. "message": "Reset session",
  122. "description": "This is a menu item for resetting the session, using the imperative case, as in a command."
  123. },
  124. "verifySafetyNumbers": {
  125. "message": "Verify safety number"
  126. },
  127. "theirIdentityUnknown": {
  128. "message": "You haven't exchanged any messages with this contact yet. Your safety number with them will be available after the first message."
  129. },
  130. "deleteMessages": {
  131. "message": "Delete messages",
  132. "description": "Menu item for deleting messages, title case."
  133. },
  134. "deleteConversationConfirmation": {
  135. "message": "Permanently delete this conversation?",
  136. "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."
  137. },
  138. "sessionEnded": {
  139. "message": "Secure session reset",
  140. "description": "This is a past tense, informational message. In other words, your secure session has been reset."
  141. },
  142. "installWelcome": {
  143. "message": "Welcome to Cable Desktop",
  144. "description": "Welcome title on the install page"
  145. },
  146. "installTagline": {
  147. "message": "Privacy is possible. Cable makes it easy.",
  148. "description": "Tagline displayed under installWelcome on the install page"
  149. },
  150. "installGetStartedButton": {
  151. "message": "Get started"
  152. },
  153. "installSignalLink": {
  154. "message": "First, install <a $a_params$>Signal</a> on your Android phone.<br /> We'll link your devices and keep your messages in sync.",
  155. "description": "Prompt the user to install Cable on Android before linking",
  156. "placeholders": {
  157. "a_params": {
  158. "content": "$1",
  159. "example": "href='http://example.com'"
  160. }
  161. }
  162. },
  163. "installSignalLinks": {
  164. "message": "First, install Cable 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.",
  165. "description": "Prompt the user to install Cable on their phone before linking",
  166. "placeholders": {
  167. "play_store": {
  168. "content": "$1",
  169. "example": "href='http://example.com'"
  170. },
  171. "app_store": {
  172. "content": "$2",
  173. "example": "href='http://example.com'"
  174. }
  175. }
  176. },
  177. "installGotIt": {
  178. "message": "Got it",
  179. "description": "Button for the user to confirm that they have Cable installed."
  180. },
  181. "installIHaveSignalButton": {
  182. "message": "I have Cable for Android",
  183. "description": "Button for the user to confirm that they have Cable for Android"
  184. },
  185. "installFollowUs": {
  186. "message": "<a $a_params$>Follow us</a> for updates about multi-device support for iOS.",
  187. "placeholders": {
  188. "a_params": {
  189. "content": "$1",
  190. "example": "href='http://example.com'"
  191. }
  192. }
  193. },
  194. "installAndroidInstructions": {
  195. "message": "Open Cable on your phone and navigate to Settings > Linked devices. Tap the button to add a new device, then scan the code above."
  196. },
  197. "installConnecting": {
  198. "message": "Connecting...",
  199. "description": "Displayed when waiting for the QR Code"
  200. },
  201. "installConnectionFailed": {
  202. "message": "Failed to connect to server.",
  203. "description": "Displayed when we can't connect to the server."
  204. },
  205. "installGeneratingKeys": {
  206. "message": "Generating Keys"
  207. },
  208. "installSyncingGroupsAndContacts": {
  209. "message": "Syncing groups and contacts"
  210. },
  211. "installComputerName": {
  212. "message": "This computer's name will be",
  213. "description": "Text displayed before the input where the user can enter the name for this device."
  214. },
  215. "installLinkingWithNumber": {
  216. "message": "Linking with",
  217. "description": "Text displayed before the phone number that the user is in the process of linking with"
  218. },
  219. "installFinalButton": {
  220. "message": "Looking good",
  221. "description": "The final button for the install process, after the user has entered a name for their device"
  222. },
  223. "installTooManyDevices": {
  224. "message": "Sorry, you have too many devices linked already. Try removing some."
  225. },
  226. "settings": {
  227. "message": "Settings",
  228. "description": "Menu item and header for global settings"
  229. },
  230. "theme": {
  231. "message": "Theme",
  232. "description": "Header for theme settings"
  233. },
  234. "notifications": {
  235. "message": "Notifications",
  236. "description": "Header for notification settings"
  237. },
  238. "notificationSettingsDialog": {
  239. "message": "When messages arrive, display notifications that reveal:",
  240. "description": "Explain the purpose of the notification settings"
  241. },
  242. "disableNotifications": {
  243. "message": "Disable notifications",
  244. "description": "Label for disabling notifications"
  245. },
  246. "nameAndMessage": {
  247. "message": "Both sender name and message",
  248. "description": "Label for setting notifications to display name and message text"
  249. },
  250. "noNameOrMessage": {
  251. "message": "Neither name nor message",
  252. "description": "Label for setting notifications to display no name and no message text"
  253. },
  254. "nameOnly": {
  255. "message": "Only sender name",
  256. "description": "Label for setting notifications to display sender name only"
  257. },
  258. "newMessage": {
  259. "message": "New Message",
  260. "description": "Displayed in notifications for only 1 message"
  261. },
  262. "newMessages": {
  263. "message": "New Messages",
  264. "description": "Displayed in notifications for multiple messages"
  265. },
  266. "restartSignal": {
  267. "message": "Restart Signal",
  268. "description": "Menu item for restarting the program."
  269. },
  270. "messageNotSent": {
  271. "message": "Message not sent.",
  272. "description": "Informational label, appears on messages that failed to send"
  273. },
  274. "showMore": {
  275. "message": "Details",
  276. "description": "Displays the details of a key change"
  277. },
  278. "showLess": {
  279. "message": "Hide details",
  280. "description": "Hides the details of a key change"
  281. },
  282. "learnMore": {
  283. "message": "Learn more about verifying safety numbers",
  284. "description": "Text that links to a support article on verifying safety numbers"
  285. },
  286. "expiredWarning": {
  287. "message": "This version of Cable Desktop has expired. Please upgrade to the latest version to continue messaging.",
  288. "description": "Warning notification that this version of the app has expired"
  289. },
  290. "upgrade": {
  291. "message": "Upgrade",
  292. "description": "Label text for button to upgrade the app to the latest version"
  293. },
  294. "mediaMessage": {
  295. "message": "Media message",
  296. "description": "Description of a message that has an attachment and no text, displayed in the conversation list as a preview."
  297. },
  298. "unregisteredUser": {
  299. "message": "Number is not registered",
  300. "description": "Error message displayed when sending to an unregistered user."
  301. },
  302. "sync": {
  303. "message": "Contacts",
  304. "description": "Label for contact and group sync settings"
  305. },
  306. "syncExplanation": {
  307. "message": "Import all Cable groups and contacts from your mobile device.",
  308. "description": "Explanatory text for sync settings"
  309. },
  310. "lastSynced": {
  311. "message": "Last import at",
  312. "description": "Label for date and time of last sync operation"
  313. },
  314. "syncNow": {
  315. "message": "Import now",
  316. "description": "Label for a button that syncs contacts and groups from your phone"
  317. },
  318. "syncing": {
  319. "message": "Importing...",
  320. "description": "Label for a disabled sync button while sync is in progress."
  321. },
  322. "syncFailed": {
  323. "message": "Import failed. Make sure your computer and your phone are connected to the internet.",
  324. "description": "Informational text displayed if a sync operation times out."
  325. },
  326. "timestamp_s": {
  327. "description": "Brief timestamp for messages sent less than a minute ago. Displayed in the conversation list and message bubble.",
  328. "message": "now"
  329. },
  330. "timestamp_m": {
  331. "description": "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble.",
  332. "message": "1 minute"
  333. },
  334. "timestamp_h": {
  335. "description": "Brief timestamp for messages sent about one minute ago. Displayed in the conversation list and message bubble.",
  336. "message": "1 hour"
  337. },
  338. "timestampFormat_M": {
  339. "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'.",
  340. "message": "MMM D"
  341. },
  342. "unblockToSend": {
  343. "message": "Unblock this contact to send a message.",
  344. "description": "Brief message shown when trying to message a blocked number"
  345. },
  346. "youChangedTheTimer": {
  347. "message": "You set the timer to $time$.",
  348. "description": "Message displayed when you change the message expiration timer in a conversation.",
  349. "placeholders": {
  350. "time": {
  351. "content": "$1",
  352. "example": "10m"
  353. }
  354. }
  355. },
  356. "theyChangedTheTimer": {
  357. "message": "$name$ set the timer to $time$.",
  358. "description": "Message displayed when someone else changes the message expiration timer in a conversation.",
  359. "placeholders": {
  360. "name": {
  361. "content": "$1",
  362. "example": "Bob"
  363. },
  364. "time": {
  365. "content": "$2",
  366. "example": "10m"
  367. }
  368. }
  369. },
  370. "timerOption_0_seconds": {
  371. "message": "off",
  372. "description": "Label for option to turn off message expiration in the timer menu"
  373. },
  374. "timerOption_5_seconds": {
  375. "message": "5 seconds",
  376. "description": "Label for a selectable option in the message expiration timer menu"
  377. },
  378. "timerOption_10_seconds": {
  379. "message": "10 seconds",
  380. "description": "Label for a selectable option in the message expiration timer menu"
  381. },
  382. "timerOption_30_seconds": {
  383. "message": "30 seconds",
  384. "description": "Label for a selectable option in the message expiration timer menu"
  385. },
  386. "timerOption_1_day": {
  387. "message": "1 day",
  388. "description": "Label for a selectable option in the message expiration timer menu"
  389. },
  390. "timerOption_1_week": {
  391. "message": "1 week",
  392. "description": "Label for a selectable option in the message expiration timer menu"
  393. },
  394. "disappearingMessages": {
  395. "message": "Disappearing messages",
  396. "description": "Conversation menu option to enable disappearing messages"
  397. },
  398. "timerOption_0_seconds_abbreviated": {
  399. "message": "off",
  400. "description": "Short format indicating current timer setting in the conversation list snippet"
  401. },
  402. "timerOption_5_seconds_abbreviated": {
  403. "message": "5s",
  404. "description": "Very short format indicating current timer setting in the conversation header"
  405. },
  406. "timerOption_10_seconds_abbreviated": {
  407. "message": "10s",
  408. "description": "Very short format indicating current timer setting in the conversation header"
  409. },
  410. "timerOption_30_seconds_abbreviated": {
  411. "message": "30s",
  412. "description": "Very short format indicating current timer setting in the conversation header"
  413. },
  414. "timerOption_1_minute_abbreviated": {
  415. "message": "1m",
  416. "description": "Very short format indicating current timer setting in the conversation header"
  417. },
  418. "timerOption_5_minutes_abbreviated": {
  419. "message": "5m",
  420. "description": "Very short format indicating current timer setting in the conversation header"
  421. },
  422. "timerOption_30_minutes_abbreviated": {
  423. "message": "30m",
  424. "description": "Very short format indicating current timer setting in the conversation header"
  425. },
  426. "timerOption_1_hour_abbreviated": {
  427. "message": "1h",
  428. "description": "Very short format indicating current timer setting in the conversation header"
  429. },
  430. "timerOption_6_hours_abbreviated": {
  431. "message": "6h",
  432. "description": "Very short format indicating current timer setting in the conversation header"
  433. },
  434. "timerOption_12_hours_abbreviated": {
  435. "message": "12h",
  436. "description": "Very short format indicating current timer setting in the conversation header"
  437. },
  438. "timerOption_1_day_abbreviated": {
  439. "message": "1d",
  440. "description": "Very short format indicating current timer setting in the conversation header"
  441. },
  442. "timerOption_1_week_abbreviated": {
  443. "message": "1w",
  444. "description": "Very short format indicating current timer setting in the conversation header"
  445. },
  446. "timerSetTo": {
  447. "message": "Timer set to $time$",
  448. "description": "Displayed in the conversation list when the timer is updated.",
  449. "placeholders": {
  450. "time": {
  451. "content": "$1",
  452. "example": "1w"
  453. }
  454. }
  455. },
  456. "audioNotificationDescription": {
  457. "message": "Play audio notification",
  458. "description": "Description for audio notification setting"
  459. },
  460. "safetyNumbersSettingHeader": {
  461. "message": "Safety numbers approval",
  462. "description": "Header for safety numbers setting"
  463. },
  464. "safetyNumbersSettingDescription": {
  465. "message": "Require approval of new safety numbers when they change",
  466. "description": "Description for safety numbers setting"
  467. },
  468. "keychanged": {
  469. "message": "Your safety number with $name$ has changed.",
  470. "description": "",
  471. "placeholders": {
  472. "name": {
  473. "content": "$1",
  474. "example": "John"
  475. }
  476. }
  477. },
  478. "yourSafetyNumberWith": {
  479. "message": "Your safety number with $name$",
  480. "description": "Heading for safety number view",
  481. "placeholders": {
  482. "name": {
  483. "content": "$1",
  484. "example": "John"
  485. }
  486. }
  487. },
  488. "themeAndroidDark": {
  489. "message": "Android (dark)",
  490. "description": "Label text for dark Android theme"
  491. },
  492. "newContact": {
  493. "message": "Click to create new contact",
  494. "description": ""
  495. },
  496. "newPhoneNumber": {
  497. "message": "Enter a phone number to add a contact.",
  498. "description": "Placeholder for adding a new number to a contact"
  499. },
  500. "invalidNumberError": {
  501. "message": "Invalid number",
  502. "description": "When a person inputs a number that is invalid"
  503. }
  504. }