|
31 | 31 | "@profileButtonSendDirectMessage": {
|
32 | 32 | "description": "Label for button in profile screen to navigate to DMs with the shown user."
|
33 | 33 | },
|
34 |
| - "cameraAccessDeniedTitle": "Permissions needed", |
35 |
| - "@cameraAccessDeniedTitle": { |
36 |
| - "description": "Title for dialog when the user needs to grant permissions for camera access." |
| 34 | + "permissionsNeededError": "Error", |
| 35 | + "@permissionsNeededError": { |
| 36 | + "description": "General title for access dialog when we encounter an unknown error." |
37 | 37 | },
|
38 |
| - "cameraAccessDeniedMessage": "To upload an image, please grant Zulip additional permissions in Settings.", |
39 |
| - "@cameraAccessDeniedMessage": { |
40 |
| - "description": "Message for dialog when the user needs to grant permissions for camera access." |
| 38 | + "permissionsNeededTitle": "Permissions needed", |
| 39 | + "@permissionsNeededTitle": { |
| 40 | + "description": "Title for dialog when the user needs to grant additional permissions." |
| 41 | + }, |
| 42 | + "permissionsNeededOpenSettings": "Open settings", |
| 43 | + "@permissionsNeededOpenSettings": { |
| 44 | + "description": "Button label for permissions dialog button that opens the system settings screen." |
41 | 45 | },
|
42 |
| - "cameraAccessDeniedButtonText": "Open settings", |
43 |
| - "@cameraAccessDeniedButtonText": { |
| 46 | + "permissionsNeededCameraAccessDenied": "To upload an image, please grant Zulip additional permissions in Settings.", |
| 47 | + "@permissionsNeededCameraAccessDenied": { |
44 | 48 | "description": "Message for dialog when the user needs to grant permissions for camera access."
|
45 | 49 | },
|
| 50 | + "permissionsReadExternalStorageDenied": "To upload files, please grant Zulip additional permissions in Settings.", |
| 51 | + "@permissionsReadExternalStorageDenied": { |
| 52 | + "description": "Message for dialog when the user needs to grant permissions for external storage read access." |
| 53 | + }, |
46 | 54 | "actionSheetOptionCopy": "Copy message text",
|
47 | 55 | "@actionSheetOptionCopy": {
|
48 | 56 | "description": "Label for copy message text button on action sheet."
|
|
63 | 71 | "@errorCopyingFailed": {
|
64 | 72 | "description": "Dialog message when copying the text of a message to the users system clipboard failed."
|
65 | 73 | },
|
| 74 | + "errorFailedToUploadFile": "Failed to upload file: {filename}", |
| 75 | + "@errorFailedToUploadFile": { |
| 76 | + "description": "Label in compose box showing the specified file failed to upload.", |
| 77 | + "placeholders": { |
| 78 | + "filename": { |
| 79 | + "type": "String", |
| 80 | + "example": "file.txt" |
| 81 | + } |
| 82 | + } |
| 83 | + }, |
| 84 | + "errorFilesTooLarge": "{num, plural, =1{File is} other{{num} files are}} larger than the server's limit of {maxFileUploadSizeMib} MiB and will not be uploaded:\n\n{listMessage}", |
| 85 | + "@errorFilesTooLarge": { |
| 86 | + "description": "Error message when attached files are too large in size.", |
| 87 | + "placeholders": { |
| 88 | + "num": { |
| 89 | + "type": "int", |
| 90 | + "example": "4" |
| 91 | + }, |
| 92 | + "maxFileUploadSizeMib": { |
| 93 | + "type": "int", |
| 94 | + "example": "15" |
| 95 | + }, |
| 96 | + "listMessage": { |
| 97 | + "type": "String", |
| 98 | + "example": "foo.txt\nbar.txt" |
| 99 | + } |
| 100 | + } |
| 101 | + }, |
| 102 | + "errorFilesTooLargeTitle": "{num, plural, =1{File} other{Files}} too large", |
| 103 | + "@errorFilesTooLargeTitle": { |
| 104 | + "description": "Error title when attached files are too large in size.", |
| 105 | + "placeholders": { |
| 106 | + "num": { |
| 107 | + "type": "int", |
| 108 | + "example": "4" |
| 109 | + } |
| 110 | + } |
| 111 | + }, |
66 | 112 | "errorLoginInvalidInputTitle": "Invalid input",
|
67 | 113 | "@errorLoginInvalidInputTitle": {
|
68 | 114 | "description": "Error dialog title for login dialog when input is invalid."
|
|
71 | 117 | "@errorLoginFailed": {
|
72 | 118 | "description": "Error dialog title when login for a Zulip server fails."
|
73 | 119 | },
|
| 120 | + "errorMessageNotSent": "Message not sent", |
| 121 | + "@errorMessageNotSent": { |
| 122 | + "description": "Message for compose box when a message could not be sent." |
| 123 | + }, |
74 | 124 | "errorMessageDoesNotSeemToExist": "That message does not seem to exist.",
|
75 | 125 | "@errorMessageDoesNotSeemToExist": {
|
76 | 126 | "description": "Error message when loading a message that does not exist."
|
|
111 | 161 | "@successMessageCopied": {
|
112 | 162 | "description": "Dialog message when content of a message was copied to the users system clipboard."
|
113 | 163 | },
|
| 164 | + "composeBoxAttachFilesTooltip": "Attach files", |
| 165 | + "@composeBoxAttachFilesTooltip": { |
| 166 | + "description": "Tooltip for compose box icon to attach a file to the message." |
| 167 | + }, |
| 168 | + "composeBoxAttachMediaTooltip": "Attach images or videos", |
| 169 | + "@composeBoxAttachMediaTooltip": { |
| 170 | + "description": "Tooltip for compose box icon to attach media to the message." |
| 171 | + }, |
| 172 | + "composeBoxAttachFromCameraTooltip": "Take a photo", |
| 173 | + "@composeBoxAttachFromCameraTooltip": { |
| 174 | + "description": "Tooltip for compose box icon to attach an image from the camera to the message." |
| 175 | + }, |
| 176 | + "composeBoxSelfDMHint": "Jot down something", |
| 177 | + "@composeBoxSelfDMHint": { |
| 178 | + "description": "Hint text for content input when sending a message to yourself." |
| 179 | + }, |
| 180 | + "composeBoxDMHintNoName": "Type a message", |
| 181 | + "@composeBoxDMHintNoName": { |
| 182 | + "description": "Hint text for content input when sending a message to one other person but we cannot determine their name." |
| 183 | + }, |
| 184 | + "composeBoxDMHint": "Message @{user}", |
| 185 | + "@composeBoxDMHint": { |
| 186 | + "description": "Hint text for content input when sending a message to one other person.", |
| 187 | + "placeholders": { |
| 188 | + "user": { |
| 189 | + "type": "String", |
| 190 | + "example": "stream name" |
| 191 | + } |
| 192 | + } |
| 193 | + }, |
| 194 | + "composeBoxGroupDMHint": "Message group", |
| 195 | + "@composeBoxGroupDMHint": { |
| 196 | + "description": "Hint text for content input when sending a message to a group." |
| 197 | + }, |
| 198 | + "composeBoxStreamContentHint": "Message #{stream} > ${topic}", |
| 199 | + "@composeBoxStreamContentHint": { |
| 200 | + "description": "Hint text for content input when sending a message to a stream", |
| 201 | + "placeholders": { |
| 202 | + "stream": { |
| 203 | + "type": "String", |
| 204 | + "example": "stream name" |
| 205 | + }, |
| 206 | + "topic": { |
| 207 | + "type": "String", |
| 208 | + "example": "topic name" |
| 209 | + } |
| 210 | + } |
| 211 | + }, |
| 212 | + "composeBoxSendTooltip": "Send", |
| 213 | + "@composeBoxSendTooltip": { |
| 214 | + "description": "Tooltip for send button in compose box." |
| 215 | + }, |
| 216 | + "composeBoxUnknownStreamName": "(unknown stream)", |
| 217 | + "@composeBoxUnknownStreamName": { |
| 218 | + "description": "Replacement name for stream when it cannot be found in the store." |
| 219 | + }, |
| 220 | + "composeBoxTopicHintText": "Topic", |
| 221 | + "@composeBoxTopicHintText": { |
| 222 | + "description": "Hint text for topic input widget in compose box." |
| 223 | + }, |
| 224 | + "composeBoxUploadingFilename": "Uploading {filename}...", |
| 225 | + "@composeBoxUploadingFilename": { |
| 226 | + "description": "Label in compose box showing the specified file is currently uploading.", |
| 227 | + "placeholders": { |
| 228 | + "filename": { |
| 229 | + "type": "String", |
| 230 | + "example": "file.txt" |
| 231 | + } |
| 232 | + } |
| 233 | + }, |
| 234 | + "contentValidationErrorTooLong": "Message length shouldn't be greater than 10000 characters.", |
| 235 | + "@contentValidationErrorTooLong": { |
| 236 | + "description": "Content validation error message when the message is too long." |
| 237 | + }, |
| 238 | + "contentValidationErrorEmpty": "You have nothing to send!", |
| 239 | + "@contentValidationErrorEmpty": { |
| 240 | + "description": "Content validation error message when the message is empty." |
| 241 | + }, |
| 242 | + "contentValidationErrorQuoteAndReplyInProgress": "Please wait for the quotation to complete.", |
| 243 | + "@contentValidationErrorQuoteAndReplyInProgress": { |
| 244 | + "description": "Content validation error message when a quotation has not completed yet." |
| 245 | + }, |
| 246 | + "contentValidationErrorUploadInProgress": "Please wait for the upload to complete.", |
| 247 | + "@contentValidationErrorUploadInProgress": { |
| 248 | + "description": "Content validation error message when attachments have not finished uploading." |
| 249 | + }, |
114 | 250 | "suggestedActionDialogCancel": "Cancel",
|
115 | 251 | "@suggestedActionDialogCancel": {
|
116 | 252 | "description": "Button label to cancel a suggested action."
|
|
123 | 259 | "@errorDialogContinue": {
|
124 | 260 | "description": "Button label in error dialogs to acknowledge error."
|
125 | 261 | },
|
| 262 | + "errorDialogTitle": "Error", |
| 263 | + "@errorDialogTitle": { |
| 264 | + "description": "Generic title for error dialog." |
| 265 | + }, |
126 | 266 | "lightboxCopyLinkTooltip": "Copy link",
|
127 | 267 | "@lightboxCopyLinkTooltip": {
|
128 | 268 | "description": "Tooltip in lightbox for the copy link action."
|
|
175 | 315 | "@loginValidationRequireUsernameLabel": {
|
176 | 316 | "description": "Label for input when a username is required to login."
|
177 | 317 | },
|
| 318 | + "topicValidationErrorTooLong": "Topic length shouldn't be greater than 60 characters.", |
| 319 | + "@topicValidationErrorTooLong": { |
| 320 | + "description": "Topic validation error when topic is too long." |
| 321 | + }, |
| 322 | + "topicValidationErrorMandatoryButEmpty": "Topics are required in this organization.", |
| 323 | + "@topicValidationErrorMandatoryButEmpty": { |
| 324 | + "description": "Topic validation error when topic is required but was empty." |
| 325 | + }, |
178 | 326 | "subscribedToNStreams": "Subscribed to {num, plural, =0{no streams} =1{1 stream} other{{num} streams}}",
|
179 | 327 | "@subscribedToNStreams": {
|
180 | 328 | "description": "Test page label showing number of streams user is subscribed to.",
|
|
0 commit comments