|
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 | "actionSheetCopyMessageText": "Copy message text",
|
47 | 55 | "@actionSheetCopyMessageText": {
|
48 | 56 | "description": "Label for copy message text button on action sheet."
|
|
75 | 83 | "@actionSheetShare": {
|
76 | 84 | "description": "Label for share button on action sheet."
|
77 | 85 | },
|
| 86 | + "composeBoxAttachFilesTooltip": "Attach files", |
| 87 | + "@composeBoxAttachFilesTooltip": { |
| 88 | + "description": "Tooltip for compose box icon to attach a file to the message." |
| 89 | + }, |
| 90 | + "composeBoxAttachMediaTooltip": "Attach images or videos", |
| 91 | + "@composeBoxAttachMediaTooltip": { |
| 92 | + "description": "Tooltip for compose box icon to attach media to the message." |
| 93 | + }, |
| 94 | + "composeBoxAttachFromCameraTooltip": "Take a photo", |
| 95 | + "@composeBoxAttachFromCameraTooltip": { |
| 96 | + "description": "Tooltip for compose box icon to attach an image from the camera to the message." |
| 97 | + }, |
| 98 | + "composeBoxFailedToUploadFile": "Failed to upload file: {filename}", |
| 99 | + "@composeBoxFailedToUploadFile": { |
| 100 | + "description": "Label in compose box showing the specified file failed to upload.", |
| 101 | + "placeholders": { |
| 102 | + "filename": { |
| 103 | + "type": "String", |
| 104 | + "example": "file.txt" |
| 105 | + } |
| 106 | + } |
| 107 | + }, |
| 108 | + "composeBoxFilesTooLargeTitle": "{num, plural, =1{File} other{Files}} too large", |
| 109 | + "@composeBoxFilesTooLargeTitle": { |
| 110 | + "description": "Error dialog title when attached files are too large in size.", |
| 111 | + "placeholders": { |
| 112 | + "num": { |
| 113 | + "type": "int", |
| 114 | + "example": "4" |
| 115 | + } |
| 116 | + } |
| 117 | + }, |
| 118 | + "composeBoxFilesTooLargeMessage": "{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}", |
| 119 | + "@composeBoxFilesTooLargeMessage": { |
| 120 | + "description": "Error dialog message when attached files are too large in size.", |
| 121 | + "placeholders": { |
| 122 | + "num": { |
| 123 | + "type": "int", |
| 124 | + "example": "4" |
| 125 | + }, |
| 126 | + "maxFileUploadSizeMib": { |
| 127 | + "type": "int", |
| 128 | + "example": "15" |
| 129 | + }, |
| 130 | + "listMessage": { |
| 131 | + "type": "String", |
| 132 | + "example": "foo.txt\nbar.txt" |
| 133 | + } |
| 134 | + } |
| 135 | + }, |
| 136 | + "composeBoxMessageNotSent": "Message not sent", |
| 137 | + "@composeBoxMessageNotSent": { |
| 138 | + "description": "Message for compose box when a message could not be sent." |
| 139 | + }, |
| 140 | + "composeBoxSelfDMHint": "Jot down something", |
| 141 | + "@composeBoxSelfDMHint": { |
| 142 | + "description": "Hint text for content input when sending a message to yourself." |
| 143 | + }, |
| 144 | + "composeBoxDMHintNoName": "Type a message", |
| 145 | + "@composeBoxDMHintNoName": { |
| 146 | + "description": "Hint text for content input when sending a message to one other person but we cannot determine their name." |
| 147 | + }, |
| 148 | + "composeBoxDMHint": "Message @{user}", |
| 149 | + "@composeBoxDMHint": { |
| 150 | + "description": "Hint text for content input when sending a message to one other person.", |
| 151 | + "placeholders": { |
| 152 | + "user": { |
| 153 | + "type": "String", |
| 154 | + "example": "stream name" |
| 155 | + } |
| 156 | + } |
| 157 | + }, |
| 158 | + "composeBoxGroupDMHint": "Message group", |
| 159 | + "@composeBoxGroupDMHint": { |
| 160 | + "description": "Hint text for content input when sending a message to a group." |
| 161 | + }, |
| 162 | + "composeBoxStreamContentHint": "Message #{stream} > ${topic}", |
| 163 | + "@composeBoxStreamContentHint": { |
| 164 | + "description": "Hint text for content input when sending a message to a stream", |
| 165 | + "placeholders": { |
| 166 | + "stream": { |
| 167 | + "type": "String", |
| 168 | + "example": "stream name" |
| 169 | + }, |
| 170 | + "topic": { |
| 171 | + "type": "String", |
| 172 | + "example": "topic name" |
| 173 | + } |
| 174 | + } |
| 175 | + }, |
| 176 | + "composeBoxSendTooltip": "Send", |
| 177 | + "@composeBoxSendTooltip": { |
| 178 | + "description": "Tooltip for send button in compose box." |
| 179 | + }, |
| 180 | + "composeBoxUnknownStreamName": "(unknown stream)", |
| 181 | + "@composeBoxUnknownStreamName": { |
| 182 | + "description": "Replacement name for stream when it cannot be found in the store." |
| 183 | + }, |
| 184 | + "composeBoxTopicHintText": "Topic", |
| 185 | + "@composeBoxTopicHintText": { |
| 186 | + "description": "Hint text for topic input widget in compose box." |
| 187 | + }, |
| 188 | + "composeBoxUploadingFilename": "Uploading {filename}...", |
| 189 | + "@composeBoxUploadingFilename": { |
| 190 | + "description": "Label in compose box showing the specified file is currently uploading.", |
| 191 | + "placeholders": { |
| 192 | + "filename": { |
| 193 | + "type": "String", |
| 194 | + "example": "file.txt" |
| 195 | + } |
| 196 | + } |
| 197 | + }, |
| 198 | + "contentValidationErrorTooLong": "Message length shouldn't be greater than 10000 characters.", |
| 199 | + "@contentValidationErrorTooLong": { |
| 200 | + "description": "Content validation error message when the message is too long." |
| 201 | + }, |
| 202 | + "contentValidationErrorEmpty": "You have nothing to send!", |
| 203 | + "@contentValidationErrorEmpty": { |
| 204 | + "description": "Content validation error message when the message is empty." |
| 205 | + }, |
| 206 | + "contentValidationErrorQuoteAndReplyInProgress": "Please wait for the quotation to complete.", |
| 207 | + "@contentValidationErrorQuoteAndReplyInProgress": { |
| 208 | + "description": "Content validation error message when a quotation has not completed yet." |
| 209 | + }, |
| 210 | + "contentValidationErrorUploadInProgress": "Please wait for the upload to complete.", |
| 211 | + "@contentValidationErrorUploadInProgress": { |
| 212 | + "description": "Content validation error message when attachments have not finished uploading." |
| 213 | + }, |
78 | 214 | "dialogButtonOK": "OK",
|
79 | 215 | "@dialogButtonOK": {
|
80 | 216 | "description": "Button label in generic dialogs to confirm."
|
|
171 | 307 | "@loginValidationRequireUsernameLabel": {
|
172 | 308 | "description": "Label for input when a username is required to login."
|
173 | 309 | },
|
| 310 | + "topicValidationErrorTooLong": "Topic length shouldn't be greater than 60 characters.", |
| 311 | + "@topicValidationErrorTooLong": { |
| 312 | + "description": "Topic validation error when topic is too long." |
| 313 | + }, |
| 314 | + "topicValidationErrorMandatoryButEmpty": "Topics are required in this organization.", |
| 315 | + "@topicValidationErrorMandatoryButEmpty": { |
| 316 | + "description": "Topic validation error when topic is required but was empty." |
| 317 | + }, |
174 | 318 | "subscribedToNStreams": "Subscribed to {num, plural, =0{no streams} =1{1 stream} other{{num} streams}}",
|
175 | 319 | "@subscribedToNStreams": {
|
176 | 320 | "description": "Test page label showing number of streams user is subscribed to.",
|
|
0 commit comments