Skip to content

Commit 9fd9e65

Browse files
committed
login: Translations
1 parent 4360fa4 commit 9fd9e65

File tree

3 files changed

+318
-76
lines changed

3 files changed

+318
-76
lines changed

assets/l10n/app_en.arb

Lines changed: 218 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,22 @@
2727
"@profileButtonSendDirectMessage": {
2828
"description": "Label for button in profile screen to navigate to DMs with the shown user."
2929
},
30-
"cameraAccessDeniedTitle": "Permissions needed",
31-
"@cameraAccessDeniedTitle": {
32-
"description": "Title for dialog when the user needs to grant permissions for camera access."
30+
"permissionsNeededTitle": "Permissions needed",
31+
"@permissionsNeededTitle": {
32+
"description": "Title for dialog when the user needs to grant additional permissions."
3333
},
34-
"cameraAccessDeniedMessage": "To upload an image, please grant Zulip additional permissions in Settings.",
35-
"@cameraAccessDeniedMessage": {
36-
"description": "Message for dialog when the user needs to grant permissions for camera access."
34+
"permissionsNeededOpenSettings": "Open settings",
35+
"@permissionsNeededOpenSettings": {
36+
"description": "Button label for permissions dialog button that opens the system settings screen."
3737
},
38-
"cameraAccessDeniedButtonText": "Open settings",
39-
"@cameraAccessDeniedButtonText": {
38+
"permissionsDeniedCameraAccess": "To upload an image, please grant Zulip additional permissions in Settings.",
39+
"@permissionsDeniedCameraAccess": {
4040
"description": "Message for dialog when the user needs to grant permissions for camera access."
4141
},
42+
"permissionsDeniedReadExternalStorage": "To upload files, please grant Zulip additional permissions in Settings.",
43+
"@permissionsDeniedReadExternalStorage": {
44+
"description": "Message for dialog when the user needs to grant permissions for external storage read access."
45+
},
4246
"actionSheetOptionCopy": "Copy message text",
4347
"@actionSheetOptionCopy": {
4448
"description": "Label for copy message text button on action sheet."
@@ -59,6 +63,59 @@
5963
"@errorCopyingFailed": {
6064
"description": "Error message when copying the text of a message to the users system clipboard failed."
6165
},
66+
"errorFailedToUploadFileTitle": "Failed to upload file: {filename}",
67+
"@errorFailedToUploadFileTitle": {
68+
"description": "Error title when the specified file failed to upload.",
69+
"placeholders": {
70+
"filename": {"type": "String", "example": "file.txt"}
71+
}
72+
},
73+
"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}",
74+
"@errorFilesTooLarge": {
75+
"description": "Error message when attached files are too large in size.",
76+
"placeholders": {
77+
"num": {"type": "int", "example": "2"},
78+
"maxFileUploadSizeMib": {"type": "int", "example": "15"},
79+
"listMessage": {"type": "String", "example": "foo.txt\nbar.txt"}
80+
}
81+
},
82+
"errorFilesTooLargeTitle": "{num, plural, =1{File} other{Files}} too large",
83+
"@errorFilesTooLargeTitle": {
84+
"description": "Error title when attached files are too large in size.",
85+
"placeholders": {
86+
"num": {"type": "int", "example": "4"}
87+
}
88+
},
89+
"errorLoginInvalidInputTitle": "Invalid input",
90+
"@errorLoginInvalidInputTitle": {
91+
"description": "Error title for login when input is invalid."
92+
},
93+
"errorLoginFailed": "Login failed",
94+
"@errorLoginFailed": {
95+
"description": "Error title for login when signing into a Zulip server fails."
96+
},
97+
"errorMessageNotSent": "Message not sent",
98+
"@errorMessageNotSent": {
99+
"description": "Error message for compose box when a message could not be sent."
100+
},
101+
"errorServerErrorMessage": "The server said:\n\n{message}",
102+
"@errorServerErrorMessage": {
103+
"description": "Error message that quotes an error from the server.",
104+
"placeholders": {
105+
"message": {"type": "String", "example": "Invalid format"}
106+
}
107+
},
108+
"errorLoginCouldNotConnect": "Failed to connect to server:\n{url}",
109+
"@errorLoginCouldNotConnect": {
110+
"description": "Error message when the app could not connect to the server.",
111+
"placeholders": {
112+
"url": {"type": "String", "example": "http://example.com/"}
113+
}
114+
},
115+
"errorLoginCouldNotConnectTitle": "Could not connect",
116+
"@errorLoginCouldNotConnectTitle": {
117+
"description": "Error title when the app could not connect to the server."
118+
},
62119
"errorMessageDoesNotSeemToExist": "That message does not seem to exist.",
63120
"@errorMessageDoesNotSeemToExist": {
64121
"description": "Error message when loading a message that does not exist."
@@ -67,6 +124,13 @@
67124
"@errorQuotationFailed": {
68125
"description": "Error message when quoting a message failed."
69126
},
127+
"errorServerMessage": "The server said:\n\n{message}",
128+
"@errorServerMessage": {
129+
"description": "Error message that quotes an error from the server.",
130+
"placeholders": {
131+
"message": {"type": "String", "example": "Invalid format"}
132+
}
133+
},
70134
"successLinkCopied": "Link copied",
71135
"@successLinkCopied": {
72136
"description": "Success message after copy link action completed."
@@ -75,6 +139,80 @@
75139
"@successMessageCopied": {
76140
"description": "Message when content of a message was copied to the users system clipboard."
77141
},
142+
"composeBoxAttachFilesTooltip": "Attach files",
143+
"@composeBoxAttachFilesTooltip": {
144+
"description": "Tooltip for compose box icon to attach a file to the message."
145+
},
146+
"composeBoxAttachMediaTooltip": "Attach images or videos",
147+
"@composeBoxAttachMediaTooltip": {
148+
"description": "Tooltip for compose box icon to attach media to the message."
149+
},
150+
"composeBoxAttachFromCameraTooltip": "Take a photo",
151+
"@composeBoxAttachFromCameraTooltip": {
152+
"description": "Tooltip for compose box icon to attach an image from the camera to the message."
153+
},
154+
"composeBoxGenericContentHint": "Type a message",
155+
"@composeBoxGenericContentHint": {
156+
"description": "Hint text for content input when sending a message."
157+
},
158+
"composeBoxDmContentHint": "Message @{user}",
159+
"@composeBoxDmContentHint": {
160+
"description": "Hint text for content input when sending a message to one other person.",
161+
"placeholders": {
162+
"user": {"type": "String", "example": "stream name"}
163+
}
164+
},
165+
"composeBoxGroupDmContentHint": "Message group",
166+
"@composeBoxGroupDmContentHint": {
167+
"description": "Hint text for content input when sending a message to a group."
168+
},
169+
"composeBoxSelfDmContentHint": "Jot down something",
170+
"@composeBoxSelfDmContentHint": {
171+
"description": "Hint text for content input when sending a message to yourself."
172+
},
173+
"composeBoxStreamContentHint": "Message #{stream} > {topic}",
174+
"@composeBoxStreamContentHint": {
175+
"description": "Hint text for content input when sending a message to a stream",
176+
"placeholders": {
177+
"stream": {"type": "String", "example": "stream name"},
178+
"topic": {"type": "String", "example": "topic name"}
179+
}
180+
},
181+
"composeBoxSendTooltip": "Send",
182+
"@composeBoxSendTooltip": {
183+
"description": "Tooltip for send button in compose box."
184+
},
185+
"composeBoxUnknownStreamName": "(unknown stream)",
186+
"@composeBoxUnknownStreamName": {
187+
"description": "Replacement name for stream when it cannot be found in the store."
188+
},
189+
"composeBoxTopicHintText": "Topic",
190+
"@composeBoxTopicHintText": {
191+
"description": "Hint text for topic input widget in compose box."
192+
},
193+
"composeBoxUploadingFilename": "Uploading {filename}...",
194+
"@composeBoxUploadingFilename": {
195+
"description": "Label in compose box showing the specified file is currently uploading.",
196+
"placeholders": {
197+
"filename": {"type": "String", "example": "file.txt"}
198+
}
199+
},
200+
"contentValidationErrorTooLong": "Message length shouldn't be greater than 10000 characters.",
201+
"@contentValidationErrorTooLong": {
202+
"description": "Content validation error message when the message is too long."
203+
},
204+
"contentValidationErrorEmpty": "You have nothing to send!",
205+
"@contentValidationErrorEmpty": {
206+
"description": "Content validation error message when the message is empty."
207+
},
208+
"contentValidationErrorQuoteAndReplyInProgress": "Please wait for the quotation to complete.",
209+
"@contentValidationErrorQuoteAndReplyInProgress": {
210+
"description": "Content validation error message when a quotation has not completed yet."
211+
},
212+
"contentValidationErrorUploadInProgress": "Please wait for the upload to complete.",
213+
"@contentValidationErrorUploadInProgress": {
214+
"description": "Content validation error message when attachments have not finished uploading."
215+
},
78216
"dialogCancel": "Cancel",
79217
"@dialogCancel": {
80218
"description": "Button label in dialogs to cancel."
@@ -87,10 +225,66 @@
87225
"@errorDialogContinue": {
88226
"description": "Button label in error dialogs to acknowledge error."
89227
},
228+
"errorDialogTitle": "Error",
229+
"@errorDialogTitle": {
230+
"description": "Generic title for error dialog."
231+
},
90232
"lightboxCopyLinkTooltip": "Copy link",
91233
"@lightboxCopyLinkTooltip": {
92234
"description": "Tooltip in lightbox for the copy link action."
93235
},
236+
"loginPageTitle": "Log in",
237+
"@loginPageTitle": {
238+
"description": "Page title for login page."
239+
},
240+
"loginFormSubmitLabel": "Log in",
241+
"@loginFormSubmitLabel": {
242+
"description": "Button text to submit login credentials."
243+
},
244+
"loginAddAnAccount": "Add an account",
245+
"@loginAddAnAccount": {
246+
"description": "Page title for screen to add a Zulip account."
247+
},
248+
"loginServerUrlInputLabel": "Your Zulip server URL",
249+
"@loginServerUrlInputLabel": {
250+
"description": "Input label in login page for Zulip server URL entry."
251+
},
252+
"loginHidePassword": "Hide password",
253+
"@loginHidePassword": {
254+
"description": "Icon label for button to hide password in input form."
255+
},
256+
"loginEmailLabel": "Email address",
257+
"@loginEmailLabel": {
258+
"description": "Label for input when an email is required to login."
259+
},
260+
"loginErrorMissingEmail": "Please enter your email.",
261+
"@loginErrorMissingEmail": {
262+
"description": "Error message when an empty email was provided."
263+
},
264+
"loginPasswordLabel": "Password",
265+
"@loginPasswordLabel": {
266+
"description": "Label for input for password field."
267+
},
268+
"loginErrorMissingPassword": "Please enter your password.",
269+
"@loginErrorMissingPassword": {
270+
"description": "Error message when an empty password was provided."
271+
},
272+
"loginUsernameLabel": "Username",
273+
"@loginUsernameLabel": {
274+
"description": "Label for input when a username is required to login."
275+
},
276+
"loginErrorMissingUsername": "Please enter your username.",
277+
"@loginErrorMissingUsername": {
278+
"description": "Error message when an empty username was provided."
279+
},
280+
"topicValidationErrorTooLong": "Topic length shouldn't be greater than 60 characters.",
281+
"@topicValidationErrorTooLong": {
282+
"description": "Topic validation error when topic is too long."
283+
},
284+
"topicValidationErrorMandatoryButEmpty": "Topics are required in this organization.",
285+
"@topicValidationErrorMandatoryButEmpty": {
286+
"description": "Topic validation error when topic is required but was empty."
287+
},
94288
"subscribedToNStreams": "Subscribed to {num, plural, =0{no streams} =1{1 stream} other{{num} streams}}",
95289
"@subscribedToNStreams": {
96290
"description": "Test page label showing number of streams user is subscribed to.",
@@ -116,6 +310,22 @@
116310
"httpStatus": {"type": "int", "example": "500"}
117311
}
118312
},
313+
"serverUrlValidationErrorEmpty": "Please enter a URL.",
314+
"@serverUrlValidationErrorEmpty": {
315+
"description": "Error message when URL is empty"
316+
},
317+
"serverUrlValidationErrorInvalidUrl": "Please enter a valid URL.",
318+
"@serverUrlValidationErrorInvalidUrl": {
319+
"description": "Error message when URL is not in a valid format."
320+
},
321+
"serverUrlValidationErrorNoUseEmail": "Please enter the server URL, not your email.",
322+
"@serverUrlValidationErrorNoUseEmail": {
323+
"description": "Error message when URL looks like an email"
324+
},
325+
"serverUrlValidationErrorUnsupportedScheme": "The server URL must start with http:// or https://.",
326+
"@serverUrlValidationErrorUnsupportedScheme": {
327+
"description": "Error message when URL has an unsupported scheme."
328+
},
119329
"userRoleOwner": "Owner",
120330
"@userRoleOwner": {
121331
"description": "Label for UserRole.owner"

0 commit comments

Comments
 (0)