Skip to content

Commit

Permalink
assets: add more translatable strings
Browse files Browse the repository at this point in the history
  • Loading branch information
sirpengi committed Sep 20, 2023
1 parent 67dff51 commit 65e61f5
Showing 1 changed file with 320 additions and 8 deletions.
328 changes: 320 additions & 8 deletions assets/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
"@aboutPageTapToView": {
"description": "Item subtitle in About Zulip page to navigate to Licenses page"
},
"apiConnectionNetworkRequestFailed": "Network request failed",
"@apiConnectionNetworkRequestFailed": {
"description": "Message for error dialog when a network request fails."
},
"chooseAccountPageTitle": "Choose account",
"@chooseAccountPageTitle": {
"description": "Title for ChooseAccountPage"
Expand All @@ -27,18 +31,290 @@
"@profileButtonSendDirectMessage": {
"description": "Label for button in profile screen to navigate to DMs with the shown user."
},
"cameraAccessDeniedTitle": "Permissions needed",
"@cameraAccessDeniedTitle": {
"description": "Title for dialog when the user needs to grant permissions for camera access."
"permissionsNeededError": "Error",
"@permissionsNeededError": {
"description": "General title for access dialog when we encounter an unknown error."
},
"cameraAccessDeniedMessage": "To upload an image, please grant Zulip additional permissions in Settings.",
"@cameraAccessDeniedMessage": {
"description": "Message for dialog when the user needs to grant permissions for camera access."
"permissionsNeededTitle": "Permissions needed",
"@permissionsNeededTitle": {
"description": "Title for dialog when the user needs to grant additional permissions."
},
"cameraAccessDeniedButtonText": "Open settings",
"@cameraAccessDeniedButtonText": {
"permissionsNeededOpenSettings": "Open settings",
"@permissionsNeededOpenSettings": {
"description": "Button label for permissions dialog button that opens the system settings screen."
},
"permissionsNeededCameraAccessDenied": "To upload an image, please grant Zulip additional permissions in Settings.",
"@permissionsNeededCameraAccessDenied": {
"description": "Message for dialog when the user needs to grant permissions for camera access."
},
"permissionsReadExternalStorageDenied": "To upload files, please grant Zulip additional permissions in Settings.",
"@permissionsReadExternalStorageDenied": {
"description": "Message for dialog when the user needs to grant permissions for external storage read access."
},
"actionSheetCopyMessageText": "Copy message text",
"@actionSheetCopyMessageText": {
"description": "Label for copy message text button on action sheet."
},
"actionSheetCouldNotFetchMessageSource": "Could not fetch message source",
"@actionSheetCouldNotFetchMessageSource": {
"description": "Dialog message when the source of a message could not be fetched."
},
"actionSheetCopyingFailed": "Copying failed",
"@actionSheetCopyingFailed": {
"description": "Dialog message when copying the text of a message to the users system clipboard failed."
},
"actionSheetMessageCopied": "Message Copied",
"@actionSheetMessageCopied": {
"description": "Dialog message when content of a message was copied to the users system clipboard."
},
"actionSheetMessageDoesNotSeemToExist": "That message does not seem to exist.",
"@actionSheetMessageDoesNotSeemToExist": {
"description": "Dialog message in action sheet when loading a message that does not exist."
},
"actionSheetQuoteAndReply": "Quote and reply",
"@actionSheetQuoteAndReply": {
"description": "Label for Quote and reply button on action sheet."
},
"actionSheetQuotationFailed": "Quotation failed",
"@actionSheetQuotationFailed": {
"description": "Error dialog message when quoting a message failed."
},
"actionSheetShare": "Share",
"@actionSheetShare": {
"description": "Label for share button on action sheet."
},
"composeBoxAttachFilesTooltip": "Attach files",
"@composeBoxAttachFilesTooltip": {
"description": "Tooltip for compose box icon to attach a file to the message."
},
"composeBoxAttachMediaTooltip": "Attach images or videos",
"@composeBoxAttachMediaTooltip": {
"description": "Tooltip for compose box icon to attach media to the message."
},
"composeBoxAttachFromCameraTooltip": "Take a photo",
"@composeBoxAttachFromCameraTooltip": {
"description": "Tooltip for compose box icon to attach an image from the camera to the message."
},
"composeBoxFailedToUploadFile": "Failed to upload file: {filename}",
"@composeBoxFailedToUploadFile": {
"description": "Label in compose box showing the specified file failed to upload.",
"placeholders": {
"filename": {
"type": "String",
"example": "file.txt"
}
}
},
"composeBoxFilesTooLargeTitle": "{num, plural, =1{File} other{Files}} too large",
"@composeBoxFilesTooLargeTitle": {
"description": "Error dialog title when attached files are too large in size.",
"placeholders": {
"num": {
"type": "int",
"example": "4"
}
}
},
"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}",
"@composeBoxFilesTooLargeMessage": {
"description": "Error dialog message when attached files are too large in size.",
"placeholders": {
"num": {
"type": "int",
"example": "4"
},
"maxFileUploadSizeMib": {
"type": "int",
"example": "15"
},
"listMessage": {
"type": "String",
"example": "foo.txt\nbar.txt"
}
}
},
"composeBoxMessageNotSent": "Message not sent",
"@composeBoxMessageNotSent": {
"description": "Message for compose box when a message could not be sent."
},
"composeBoxSelfDMHint": "Jot down something",
"@composeBoxSelfDMHint": {
"description": "Hint text for content input when sending a message to yourself."
},
"composeBoxDMHintNoName": "Type a message",
"@composeBoxDMHintNoName": {
"description": "Hint text for content input when sending a message to one other person but we cannot determine their name."
},
"composeBoxDMHint": "Message @{user}",
"@composeBoxDMHint": {
"description": "Hint text for content input when sending a message to one other person.",
"placeholders": {
"user": {
"type": "String",
"example": "stream name"
}
}
},
"composeBoxGroupDMHint": "Message group",
"@composeBoxGroupDMHint": {
"description": "Hint text for content input when sending a message to a group."
},
"composeBoxStreamContentHint": "Message #{stream} > ${topic}",
"@composeBoxStreamContentHint": {
"description": "Hint text for content input when sending a message to a stream",
"placeholders": {
"stream": {
"type": "String",
"example": "stream name"
},
"topic": {
"type": "String",
"example": "topic name"
}
}
},
"composeBoxSendTooltip": "Send",
"@composeBoxSendTooltip": {
"description": "Tooltip for send button in compose box."
},
"composeBoxUnknownStreamName": "(unknown stream)",
"@composeBoxUnknownStreamName": {
"description": "Replacement name for stream when it cannot be found in the store."
},
"composeBoxTopicHintText": "Topic",
"@composeBoxTopicHintText": {
"description": "Hint text for topic input widget in compose box."
},
"composeBoxUploadingFilename": "Uploading {filename}...",
"@composeBoxUploadingFilename": {
"description": "Label in compose box showing the specified file is currently uploading.",
"placeholders": {
"filename": {
"type": "String",
"example": "file.txt"
}
}
},
"contentValidationErrorTooLong": "Message length shouldn't be greater than 10000 characters.",
"@contentValidationErrorTooLong": {
"description": "Content validation error message when the message is too long."
},
"contentValidationErrorEmpty": "You have nothing to send!",
"@contentValidationErrorEmpty": {
"description": "Content validation error message when the message is empty."
},
"contentValidationErrorQuoteAndReplyInProgress": "Please wait for the quotation to complete.",
"@contentValidationErrorQuoteAndReplyInProgress": {
"description": "Content validation error message when a quotation has not completed yet."
},
"contentValidationErrorUploadInProgress": "Please wait for the upload to complete.",
"@contentValidationErrorUploadInProgress": {
"description": "Content validation error message when attachments have not finished uploading."
},
"dialogButtonOK": "OK",
"@dialogButtonOK": {
"description": "Button label in generic dialogs to confirm."
},
"dialogButtonCancel": "Cancel",
"@dialogButtonCancel": {
"description": "Button label in generic dialogs to cancel."
},
"dialogButtonContinue": "Continue",
"@dialogButtonContinue": {
"description": "Button label in generic dialogs to continue."
},
"lightboxCopyLinkTooltip": "Copy link",
"@lightboxCopyLinkTooltip": {
"description": "Tooltip in lightbox for the copy link action."
},
"lightboxCopyLinkSuccessToast": "Link copied",
"@lightboxCopyLinkSuccessToast": {
"description": "Success message in lightbox after copy link action completed."
},
"loginPageTitle": "Log in",
"@loginPageTitle": {
"description": "Page title for login page."
},
"loginFormSubmitLabel": "Log in",
"@loginFormSubmitLabel": {
"description": "Button text to submit login credentials."
},
"loginAddAnAccount": "Add an account",
"@loginAddAnAccount": {
"description": "Page title for screen to add a zulip account."
},
"loginServerLoginFailed": "Login failed",
"@loginServerLoginFailed": {
"description": "Error dialog title when login for a Zulip server fails."
},
"loginServerUrlInputLabel": "Your Zulip server URL",
"@loginServerUrlInputLabel": {
"description": "Input label in login page for Zulip server URL entry."
},
"loginServerErrorMessage": "The server said:\n\n{message}",
"@loginServerErrorMessage": {
"description": "Error message for login that quotes an error from the server.",
"placeholders": {
"message": {
"type": "String",
"example": "Invalid format"
}
}
},
"loginCouldNotConnectMessage": "Failed to connect to server:\n{url}",
"@loginCouldNotConnectMessage": {
"description": "Message for login dialog the app could not connect to the server.",
"placeholders": {
"url": {
"type": "String",
"example": "http://example.com/"
}
}
},
"loginCouldNotConnectTitle": "Could not connect",
"@loginCouldNotConnectTitle": {
"description": "Title for login dialog the app could not connect to the server."
},
"loginHidePassword": "Hide password",
"@loginHidePassword": {
"description": "Icon label for button to hide password in input form."
},
"loginInvalidInput": "Invalid input",
"@loginInvalidInput": {
"description": "Title for login dialog when input is invalid."
},
"loginValidationPassword": "Please enter your password",
"@loginValidationPassword": {
"description": "Prompt for input for password field."
},
"loginValidationPasswordLabel": "Password",
"@loginValidationPasswordLabel": {
"description": "Label for input for password field."
},
"loginValidationRequireEmail": "Please enter your email",
"@loginValidationRequireEmail": {
"description": "Prompt when an email is required to login."
},
"loginValidationRequireEmailLabel": "Email",
"@loginValidationRequireEmailLabel": {
"description": "Label for input when an email is required to login."
},
"loginValidationRequireUsername": "Please enter your username",
"@loginValidationRequireUsername": {
"description": "Prompt when a username is required to login."
},
"loginValidationRequireUsernameLabel": "Username",
"@loginValidationRequireUsernameLabel": {
"description": "Label for input when a username is required to login."
},
"topicValidationErrorTooLong": "Topic length shouldn't be greater than 60 characters.",
"@topicValidationErrorTooLong": {
"description": "Topic validation error when topic is too long."
},
"topicValidationErrorMandatoryButEmpty": "Topics are required in this organization.",
"@topicValidationErrorMandatoryButEmpty": {
"description": "Topic validation error when topic is required but was empty."
},
"subscribedToNStreams": "Subscribed to {num, plural, =0{no streams} =1{1 stream} other{{num} streams}}",
"@subscribedToNStreams": {
"description": "Test page label showing number of streams user is subscribed to.",
Expand All @@ -49,6 +325,42 @@
}
}
},
"serverExceptionMalformedResponse": "Server gave malformed response; HTTP status {httpStatus}",
"@serverExceptionMalformedResponse": {
"description": "Message for error dialog when an API call fails because we could not parse it.",
"placeholders": {
"httpStatus": {
"type": "int",
"example": "500"
}
}
},
"serverExceptionRequestFailed": "Network request failed: HTTP status {httpStatus}",
"@serverExceptionRequestFailed": {
"description": "Message for error dialog when an API call fails.",
"placeholders": {
"httpStatus": {
"type": "int",
"example": "500"
}
}
},
"serverUrlValidationErrorEmpty": "Please enter a URL.",
"@serverUrlValidationErrorEmpty": {
"description": "Server validation error message when URL is empty"
},
"serverUrlValidationErrorInvalidUrl": "Please enter a valid URL.",
"@serverUrlValidationErrorInvalidUrl": {
"description": "Server validation error message when URL is not in a valid format."
},
"serverUrlValidationErrorNoUseEmail": "Please enter the server URL, not your email.",
"@serverUrlValidationErrorNoUseEmail": {
"description": "Server validation error message when URL provided looks like an email"
},
"serverUrlValidationErrorUnsupportedScheme": "The server URL must start with http:// or https://.",
"@serverUrlValidationErrorUnsupportedScheme": {
"description": "Server validation error message when URL does not have a scheme defined."
},
"userRoleOwner": "Owner",
"@userRoleOwner": {
"description": "Label for UserRole.owner"
Expand Down

0 comments on commit 65e61f5

Please sign in to comment.