Skip to content

Commit 4a87936

Browse files
committed
login: Translations
1 parent 47144e6 commit 4a87936

File tree

3 files changed

+330
-76
lines changed

3 files changed

+330
-76
lines changed

assets/l10n/app_en.arb

Lines changed: 230 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,26 @@
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+
"permissionsNeededError": "Error",
31+
"@permissionsNeededError": {
32+
"description": "General title for access dialog when we encounter an unknown error."
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+
"permissionsNeededTitle": "Permissions needed",
35+
"@permissionsNeededTitle": {
36+
"description": "Title for dialog when the user needs to grant additional permissions."
37+
},
38+
"permissionsNeededOpenSettings": "Open settings",
39+
"@permissionsNeededOpenSettings": {
40+
"description": "Button label for permissions dialog button that opens the system settings screen."
3741
},
38-
"cameraAccessDeniedButtonText": "Open settings",
39-
"@cameraAccessDeniedButtonText": {
42+
"permissionsDeniedCameraAccess": "To upload an image, please grant Zulip additional permissions in Settings.",
43+
"@permissionsDeniedCameraAccess": {
4044
"description": "Message for dialog when the user needs to grant permissions for camera access."
4145
},
46+
"permissionsDeniedReadExternalStorage": "To upload files, please grant Zulip additional permissions in Settings.",
47+
"@permissionsDeniedReadExternalStorage": {
48+
"description": "Message for dialog when the user needs to grant permissions for external storage read access."
49+
},
4250
"actionSheetOptionCopy": "Copy message text",
4351
"@actionSheetOptionCopy": {
4452
"description": "Label for copy message text button on action sheet."
@@ -59,6 +67,63 @@
5967
"@errorCopyingFailed": {
6068
"description": "Dialog message when copying the text of a message to the users system clipboard failed."
6169
},
70+
"errorFailedToUploadFile": "Failed to upload file: {filename}",
71+
"@errorFailedToUploadFile": {
72+
"description": "Label in compose box showing the specified file failed to upload.",
73+
"placeholders": {
74+
"filename": {"type": "String", "example": "file.txt"}
75+
}
76+
},
77+
"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}",
78+
"@errorFilesTooLarge": {
79+
"description": "Error message when attached files are too large in size.",
80+
"placeholders": {
81+
"num": {"type": "int", "example": "2"},
82+
"maxFileUploadSizeMib": {"type": "int", "example": "15"},
83+
"listMessage": {"type": "String", "example": "foo.txt\nbar.txt"}
84+
}
85+
},
86+
"errorFilesTooLargeTitle": "{num, plural, =1{File} other{Files}} too large",
87+
"@errorFilesTooLargeTitle": {
88+
"description": "Error title when attached files are too large in size.",
89+
"placeholders": {
90+
"num": {"type": "int", "example": "4"}
91+
}
92+
},
93+
"errorLoginInvalidInputTitle": "Invalid input",
94+
"@errorLoginInvalidInputTitle": {
95+
"description": "Error dialog title for login dialog when input is invalid."
96+
},
97+
"errorLoginFailed": "Login failed",
98+
"@errorLoginFailed": {
99+
"description": "Error dialog title when login for a Zulip server fails."
100+
},
101+
"errorMessageNotSent": "Message not sent",
102+
"@errorMessageNotSent": {
103+
"description": "Message for compose box when a message could not be sent."
104+
},
105+
"errorMessageDoesNotSeemToExist": "That message does not seem to exist.",
106+
"@errorMessageDoesNotSeemToExist": {
107+
"description": "Error message when loading a message that does not exist."
108+
},
109+
"errorServerErrorMessage": "The server said:\n\n{message}",
110+
"@errorServerErrorMessage": {
111+
"description": "Error message that quotes an error from the server.",
112+
"placeholders": {
113+
"message": {"type": "String", "example": "Invalid format"}
114+
}
115+
},
116+
"errorLoginCouldNotConnect": "Failed to connect to server:\n{url}",
117+
"@errorLoginCouldNotConnect": {
118+
"description": "Error message when the app could not connect to the server.",
119+
"placeholders": {
120+
"url": {"type": "String", "example": "http://example.com/"}
121+
}
122+
},
123+
"errorLoginCouldNotConnectTitle": "Could not connect",
124+
"@errorLoginCouldNotConnectTitle": {
125+
"description": "Error title when the app could not connect to the server."
126+
},
62127
"errorMessageDoesNotSeemToExist": "That message does not seem to exist.",
63128
"@errorMessageDoesNotSeemToExist": {
64129
"description": "Error message when loading a message that does not exist."
@@ -67,6 +132,13 @@
67132
"@errorQuotationFailed": {
68133
"description": "Error dialog message when quoting a message failed."
69134
},
135+
"errorServerMessage": "The server said:\n\n{message}",
136+
"@errorServerMessage": {
137+
"description": "Error message that quotes an error from the server.",
138+
"placeholders": {
139+
"message": {"type": "String", "example": "Invalid format"}
140+
}
141+
},
70142
"successLinkCopied": "Link copied",
71143
"@successLinkCopied": {
72144
"description": "Success message after copy link action completed."
@@ -75,6 +147,80 @@
75147
"@successMessageCopied": {
76148
"description": "Dialog message when content of a message was copied to the users system clipboard."
77149
},
150+
"composeBoxAttachFilesTooltip": "Attach files",
151+
"@composeBoxAttachFilesTooltip": {
152+
"description": "Tooltip for compose box icon to attach a file to the message."
153+
},
154+
"composeBoxAttachMediaTooltip": "Attach images or videos",
155+
"@composeBoxAttachMediaTooltip": {
156+
"description": "Tooltip for compose box icon to attach media to the message."
157+
},
158+
"composeBoxAttachFromCameraTooltip": "Take a photo",
159+
"@composeBoxAttachFromCameraTooltip": {
160+
"description": "Tooltip for compose box icon to attach an image from the camera to the message."
161+
},
162+
"composeBoxSelfDmHint": "Jot down something",
163+
"@composeBoxSelfDmHint": {
164+
"description": "Hint text for content input when sending a message to yourself."
165+
},
166+
"composeBoxDmHintNoName": "Type a message",
167+
"@composeBoxDmHintNoName": {
168+
"description": "Hint text for content input when sending a message to one other person but we cannot determine their name."
169+
},
170+
"composeBoxDmHint": "Message @{user}",
171+
"@composeBoxDmHint": {
172+
"description": "Hint text for content input when sending a message to one other person.",
173+
"placeholders": {
174+
"user": {"type": "String", "example": "stream name"}
175+
}
176+
},
177+
"composeBoxGroupDmHint": "Message group",
178+
"@composeBoxGroupDmHint": {
179+
"description": "Hint text for content input when sending a message to a group."
180+
},
181+
"composeBoxStreamContentHint": "Message #{stream} > ${topic}",
182+
"@composeBoxStreamContentHint": {
183+
"description": "Hint text for content input when sending a message to a stream",
184+
"placeholders": {
185+
"stream": {"type": "String", "example": "stream name"},
186+
"topic": {"type": "String", "example": "topic name"}
187+
}
188+
},
189+
"composeBoxSendTooltip": "Send",
190+
"@composeBoxSendTooltip": {
191+
"description": "Tooltip for send button in compose box."
192+
},
193+
"composeBoxUnknownStreamName": "(unknown stream)",
194+
"@composeBoxUnknownStreamName": {
195+
"description": "Replacement name for stream when it cannot be found in the store."
196+
},
197+
"composeBoxTopicHintText": "Topic",
198+
"@composeBoxTopicHintText": {
199+
"description": "Hint text for topic input widget in compose box."
200+
},
201+
"composeBoxUploadingFilename": "Uploading {filename}...",
202+
"@composeBoxUploadingFilename": {
203+
"description": "Label in compose box showing the specified file is currently uploading.",
204+
"placeholders": {
205+
"filename": {"type": "String", "example": "file.txt"}
206+
}
207+
},
208+
"contentValidationErrorTooLong": "Message length shouldn't be greater than 10000 characters.",
209+
"@contentValidationErrorTooLong": {
210+
"description": "Content validation error message when the message is too long."
211+
},
212+
"contentValidationErrorEmpty": "You have nothing to send!",
213+
"@contentValidationErrorEmpty": {
214+
"description": "Content validation error message when the message is empty."
215+
},
216+
"contentValidationErrorQuoteAndReplyInProgress": "Please wait for the quotation to complete.",
217+
"@contentValidationErrorQuoteAndReplyInProgress": {
218+
"description": "Content validation error message when a quotation has not completed yet."
219+
},
220+
"contentValidationErrorUploadInProgress": "Please wait for the upload to complete.",
221+
"@contentValidationErrorUploadInProgress": {
222+
"description": "Content validation error message when attachments have not finished uploading."
223+
},
78224
"suggestedActionDialogCancel": "Cancel",
79225
"@suggestedActionDialogCancel": {
80226
"description": "Button label to cancel a suggested action."
@@ -87,10 +233,70 @@
87233
"@errorDialogContinue": {
88234
"description": "Button label in error dialogs to acknowledge error."
89235
},
236+
"errorDialogTitle": "Error",
237+
"@errorDialogTitle": {
238+
"description": "Generic title for error dialog."
239+
},
90240
"lightboxCopyLinkTooltip": "Copy link",
91241
"@lightboxCopyLinkTooltip": {
92242
"description": "Tooltip in lightbox for the copy link action."
93243
},
244+
"loginPageTitle": "Log in",
245+
"@loginPageTitle": {
246+
"description": "Page title for login page."
247+
},
248+
"loginFormSubmitLabel": "Log in",
249+
"@loginFormSubmitLabel": {
250+
"description": "Button text to submit login credentials."
251+
},
252+
"loginAddAnAccount": "Add an account",
253+
"@loginAddAnAccount": {
254+
"description": "Page title for screen to add a zulip account."
255+
},
256+
"loginAddAnAccountConfirm": "Continue",
257+
"@loginAddAnAccountConfirm": {
258+
"description": "Button label to submit form for adding an account."
259+
},
260+
"loginServerUrlInputLabel": "Your Zulip server URL",
261+
"@loginServerUrlInputLabel": {
262+
"description": "Input label in login page for Zulip server URL entry."
263+
},
264+
"loginHidePassword": "Hide password",
265+
"@loginHidePassword": {
266+
"description": "Icon label for button to hide password in input form."
267+
},
268+
"loginEmailLabel": "Email",
269+
"@loginEmailLabel": {
270+
"description": "Label for input when an email is required to login."
271+
},
272+
"loginErrorMissingEmail": "Please enter your email",
273+
"@loginErrorMissingEmail": {
274+
"description": "Error when an empty email was provided."
275+
},
276+
"loginPasswordLabel": "Password",
277+
"@loginPasswordLabel": {
278+
"description": "Label for input for password field."
279+
},
280+
"loginErrorMissingPassword": "Please enter your password",
281+
"@loginErrorMissingPassword": {
282+
"description": "Error when an empty password was provided."
283+
},
284+
"loginUsernameLabel": "Username",
285+
"@loginUsernameLabel": {
286+
"description": "Label for input when a username is required to login."
287+
},
288+
"loginErrorMissingUsername": "Please enter your username",
289+
"@loginErrorMissingUsername": {
290+
"description": "Error when an empty username was provided."
291+
},
292+
"topicValidationErrorTooLong": "Topic length shouldn't be greater than 60 characters.",
293+
"@topicValidationErrorTooLong": {
294+
"description": "Topic validation error when topic is too long."
295+
},
296+
"topicValidationErrorMandatoryButEmpty": "Topics are required in this organization.",
297+
"@topicValidationErrorMandatoryButEmpty": {
298+
"description": "Topic validation error when topic is required but was empty."
299+
},
94300
"subscribedToNStreams": "Subscribed to {num, plural, =0{no streams} =1{1 stream} other{{num} streams}}",
95301
"@subscribedToNStreams": {
96302
"description": "Test page label showing number of streams user is subscribed to.",
@@ -116,6 +322,22 @@
116322
"httpStatus": {"type": "int", "example": "500"}
117323
}
118324
},
325+
"serverUrlValidationErrorEmpty": "Please enter a URL.",
326+
"@serverUrlValidationErrorEmpty": {
327+
"description": "Server validation error message when URL is empty"
328+
},
329+
"serverUrlValidationErrorInvalidUrl": "Please enter a valid URL.",
330+
"@serverUrlValidationErrorInvalidUrl": {
331+
"description": "Server validation error message when URL is not in a valid format."
332+
},
333+
"serverUrlValidationErrorNoUseEmail": "Please enter the server URL, not your email.",
334+
"@serverUrlValidationErrorNoUseEmail": {
335+
"description": "Server validation error message when URL provided looks like an email"
336+
},
337+
"serverUrlValidationErrorUnsupportedScheme": "The server URL must start with http:// or https://.",
338+
"@serverUrlValidationErrorUnsupportedScheme": {
339+
"description": "Server validation error message when URL does not have a scheme defined."
340+
},
119341
"userRoleOwner": "Owner",
120342
"@userRoleOwner": {
121343
"description": "Label for UserRole.owner"

0 commit comments

Comments
 (0)