Use StyledText to merge strings (#963)

This commit is contained in:
Vishnu Mohandas 2023-04-08 10:12:54 +05:30 committed by GitHub
commit 359dc0c06c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 276 additions and 360 deletions

View file

@ -42,135 +42,138 @@ class MessageLookup extends MessageLookupByLibrary {
static String m6(albumName) => "Collaborative link created for ${albumName}";
static String m7(provider) =>
static String m7(familyAdminEmail) =>
"Please contact <green>${familyAdminEmail}</green> to manage your subscription";
static String m8(provider) =>
"Please contact us at support@ente.io to manage your ${provider} subscription.";
static String m8(currentlyDeleting, totalCount) =>
static String m9(currentlyDeleting, totalCount) =>
"Deleting ${currentlyDeleting} / ${totalCount}";
static String m9(albumName) =>
static String m10(albumName) =>
"This will remove the public link for accessing \"${albumName}\".";
static String m10(supportEmail) =>
static String m11(supportEmail) =>
"Please drop an email to ${supportEmail} from your registered email address";
static String m11(count, storageSaved) =>
static String m12(count, storageSaved) =>
"Your have cleaned up ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, saving (${storageSaved}!)";
static String m12(newEmail) => "Email changed to ${newEmail}";
static String m13(newEmail) => "Email changed to ${newEmail}";
static String m13(email) =>
static String m14(email) =>
"${email} does not have an ente account.\n\nSend them an invite to share photos.";
static String m14(count, formattedNumber) =>
static String m15(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely";
static String m15(count, formattedNumber) =>
static String m16(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} in this album has been backed up safely";
static String m16(storageAmountInGB) =>
static String m17(storageAmountInGB) =>
"${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code";
static String m17(endDate) => "Free trial valid till ${endDate}";
static String m18(endDate) => "Free trial valid till ${endDate}";
static String m18(count) =>
static String m19(count) =>
"You can still access ${Intl.plural(count, one: 'it', other: 'them')} on ente as long as you have an active subscription";
static String m19(sizeInMBorGB) => "Free up ${sizeInMBorGB}";
static String m20(sizeInMBorGB) => "Free up ${sizeInMBorGB}";
static String m20(count, formattedSize) =>
static String m21(count, formattedSize) =>
"${Intl.plural(count, one: 'It can be deleted from the device to free up ${formattedSize}', other: 'They can be deleted from the device to free up ${formattedSize}')}";
static String m21(count) =>
static String m22(count) =>
"${Intl.plural(count, one: '${count} item', other: '${count} items')}";
static String m22(count) => "${count} selected";
static String m23(count) => "${count} selected";
static String m23(expiryTime) => "Link will expire on ${expiryTime}";
static String m24(expiryTime) => "Link will expire on ${expiryTime}";
static String m24(maxValue) =>
static String m25(maxValue) =>
"When set to the maximum (${maxValue}), the device limit will be relaxed to allow for temporary spikes of large number of viewers.";
static String m25(count) =>
static String m26(count) =>
"${Intl.plural(count, zero: 'no memories', one: '${count} memory', other: '${count} memories')}";
static String m26(count) =>
static String m27(count) =>
"${Intl.plural(count, one: 'Move item', other: 'Move items')}";
static String m27(albumName) => "Moved successfully to ${albumName}";
static String m28(albumName) => "Moved successfully to ${albumName}";
static String m28(passwordStrengthValue) =>
static String m29(passwordStrengthValue) =>
"Password strength: ${passwordStrengthValue}";
static String m29(providerName) =>
static String m30(providerName) =>
"Please talk to ${providerName} support if you were charged";
static String m30(reason) =>
static String m31(reason) =>
"Unfortunately your payment failed due to ${reason}";
static String m31(toEmail) => "Please email us at ${toEmail}";
static String m32(toEmail) => "Please email us at ${toEmail}";
static String m32(toEmail) => "Please send the logs to \n${toEmail}";
static String m33(toEmail) => "Please send the logs to \n${toEmail}";
static String m33(storeName) => "Rate us on ${storeName}";
static String m34(storeName) => "Rate us on ${storeName}";
static String m34(storageInGB) =>
static String m35(storageInGB) =>
"3. Both of you get ${storageInGB} GB* free";
static String m35(userEmail) =>
static String m36(userEmail) =>
"${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album";
static String m36(endDate) => "Renews on ${endDate}";
static String m37(endDate) => "Renews on ${endDate}";
static String m37(count) => "${count} selected";
static String m38(count) => "${count} selected";
static String m38(count, yourCount) =>
static String m39(count, yourCount) =>
"${count} selected (${yourCount} yours)";
static String m39(verificationID) =>
static String m40(verificationID) =>
"Here\'s my verification ID: ${verificationID} for ente.io.";
static String m40(verificationID) =>
static String m41(verificationID) =>
"Hey, can you confirm that this is your ente.io verification ID: ${verificationID}";
static String m41(referralCode, referralStorageInGB) =>
static String m42(referralCode, referralStorageInGB) =>
"ente referral code: ${referralCode} \n\nApply it in Settings → General → Referrals to get ${referralStorageInGB} GB free after you signup for a paid plan\n\nhttps://ente.io";
static String m42(numberOfPeople) =>
static String m43(numberOfPeople) =>
"${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}";
static String m43(emailIDs) => "Shared with ${emailIDs}";
static String m44(fileType) =>
"This ${fileType} will be deleted from your device.";
static String m44(emailIDs) => "Shared with ${emailIDs}";
static String m45(fileType) =>
"This ${fileType} will be deleted from your device.";
static String m46(fileType) =>
"This ${fileType} is in both ente and your device.";
static String m46(fileType) => "This ${fileType} will be deleted from ente.";
static String m47(fileType) => "This ${fileType} will be deleted from ente.";
static String m47(storageAmountInGB) => "${storageAmountInGB} GB";
static String m48(storageAmountInGB) => "${storageAmountInGB} GB";
static String m48(id) =>
static String m49(id) =>
"Your ${id} is already linked to another ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'";
static String m49(endDate) =>
static String m50(endDate) =>
"Your subscription will be cancelled on ${endDate}";
static String m50(completed, total) =>
static String m51(completed, total) =>
"${completed}/${total} memories preserved";
static String m51(storageAmountInGB) =>
static String m52(storageAmountInGB) =>
"They also get ${storageAmountInGB} GB";
static String m52(email) => "This is ${email}\'s Verification ID";
static String m53(email) => "This is ${email}\'s Verification ID";
static String m53(email) => "Verify ${email}";
static String m54(email) => "Verify ${email}";
static String m54(count) =>
static String m55(count) =>
"${Intl.plural(count, one: '${count} year ago', other: '${count} years ago')}";
static String m55(storageSaved) =>
static String m56(storageSaved) =>
"You have successfully freed up ${storageSaved}!";
final messages = _notInlinedMessages(_notInlinedMessages);
@ -366,13 +369,10 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Confirm recovery key"),
"confirmYourRecoveryKey":
MessageLookupByLibrary.simpleMessage("Confirm your recovery key"),
"contactFamilyAdminPart1":
MessageLookupByLibrary.simpleMessage("Please contact"),
"contactFamilyAdminPart2":
MessageLookupByLibrary.simpleMessage("to manage your subscription"),
"contactFamilyAdmin": m7,
"contactSupport":
MessageLookupByLibrary.simpleMessage("Contact support"),
"contactToManageSubscription": m7,
"contactToManageSubscription": m8,
"continueLabel": MessageLookupByLibrary.simpleMessage("Continue"),
"continueOnFreeTrial":
MessageLookupByLibrary.simpleMessage("Continue on free trial"),
@ -418,17 +418,15 @@ class MessageLookup extends MessageLookupByLibrary {
"deleteAccountPermanentlyButton":
MessageLookupByLibrary.simpleMessage("Delete Account Permanently"),
"deleteAlbum": MessageLookupByLibrary.simpleMessage("Delete album"),
"deleteAlbumDialogPart1": MessageLookupByLibrary.simpleMessage(
"Also delete the photos (and videos) present in this album from "),
"deleteAlbumDialogPart2Bold":
MessageLookupByLibrary.simpleMessage("all"),
"deleteAlbumDialogPart3": MessageLookupByLibrary.simpleMessage(
" other albums they are part of?"),
"deleteAlbumDialog": MessageLookupByLibrary.simpleMessage(
"Also delete the photos (and videos) present in this album from <bold>all</bold> other albums they are part of?"),
"deleteAlbumsDialogBody": MessageLookupByLibrary.simpleMessage(
"This will delete all empty albums. This is useful when you want to reduce the clutter in your album list."),
"deleteAll": MessageLookupByLibrary.simpleMessage("Delete All"),
"deleteConfirmDialogBody": MessageLookupByLibrary.simpleMessage(
"You are about to permanently delete your account and all its data.\nThis action is irreversible."),
"deleteEmailRequest": MessageLookupByLibrary.simpleMessage(
"Please send an email to <warning>account-deletion@ente.io</warning> from your registered email address."),
"deleteEmptyAlbums":
MessageLookupByLibrary.simpleMessage("Delete empty albums"),
"deleteEmptyAlbumsWithQuestionMark":
@ -440,7 +438,7 @@ class MessageLookup extends MessageLookupByLibrary {
"deleteFromEnte":
MessageLookupByLibrary.simpleMessage("Delete from ente"),
"deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"),
"deleteProgress": m8,
"deleteProgress": m9,
"deleteReason1": MessageLookupByLibrary.simpleMessage(
"Its missing a key feature that I need"),
"deleteReason2": MessageLookupByLibrary.simpleMessage(
@ -472,7 +470,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Viewers can still take screenshots or save a copy of your photos using external tools"),
"disableDownloadWarningTitle":
MessageLookupByLibrary.simpleMessage("Please note"),
"disableLinkMessage": m9,
"disableLinkMessage": m10,
"disableTwofactor":
MessageLookupByLibrary.simpleMessage("Disable two-factor"),
"disablingTwofactorAuthentication":
@ -488,12 +486,12 @@ class MessageLookup extends MessageLookupByLibrary {
"downloadFailed":
MessageLookupByLibrary.simpleMessage("Download failed"),
"downloading": MessageLookupByLibrary.simpleMessage("Downloading..."),
"dropSupportEmail": m10,
"duplicateFileCountWithStorageSaved": m11,
"dropSupportEmail": m11,
"duplicateFileCountWithStorageSaved": m12,
"eligible": MessageLookupByLibrary.simpleMessage("eligible"),
"email": MessageLookupByLibrary.simpleMessage("Email"),
"emailChangedTo": m12,
"emailNoEnteAccount": m13,
"emailChangedTo": m13,
"emailNoEnteAccount": m14,
"emailYourLogs":
MessageLookupByLibrary.simpleMessage("Email your logs"),
"empty": MessageLookupByLibrary.simpleMessage("Empty"),
@ -570,8 +568,8 @@ class MessageLookup extends MessageLookupByLibrary {
"feedback": MessageLookupByLibrary.simpleMessage("Feedback"),
"fileSavedToGallery":
MessageLookupByLibrary.simpleMessage("File saved to gallery"),
"filesBackedUpFromDevice": m14,
"filesBackedUpInAlbum": m15,
"filesBackedUpFromDevice": m15,
"filesBackedUpInAlbum": m16,
"filesDeleted": MessageLookupByLibrary.simpleMessage("Files deleted"),
"forYourMemories":
MessageLookupByLibrary.simpleMessage("for your memories"),
@ -579,19 +577,17 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Forgot password"),
"freeStorageClaimed":
MessageLookupByLibrary.simpleMessage("Free storage claimed"),
"freeStorageOnReferralSuccess": m16,
"freeStorageOnReferralSuccess": m17,
"freeStorageUsable":
MessageLookupByLibrary.simpleMessage("Free storage usable"),
"freeTrial": MessageLookupByLibrary.simpleMessage("Free trial"),
"freeTrialValidTill": m17,
"freeUpAccessPostDelete": m18,
"freeUpAmount": m19,
"freeTrialValidTill": m18,
"freeUpAccessPostDelete": m19,
"freeUpAmount": m20,
"freeUpDeviceSpace":
MessageLookupByLibrary.simpleMessage("Free up device space"),
"freeUpSpace": MessageLookupByLibrary.simpleMessage("Free up space"),
"freeUpSpaceSaving": m20,
"fromYourRegisteredEmailAddress": MessageLookupByLibrary.simpleMessage(
"from your registered email address."),
"freeUpSpaceSaving": m21,
"general": MessageLookupByLibrary.simpleMessage("General"),
"generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
"Generating encryption keys..."),
@ -631,8 +627,8 @@ class MessageLookup extends MessageLookupByLibrary {
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome":
MessageLookupByLibrary.simpleMessage(
"It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."),
"itemCount": m21,
"itemSelectedCount": m22,
"itemCount": m22,
"itemSelectedCount": m23,
"itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion":
MessageLookupByLibrary.simpleMessage(
"Items show the number of days remaining before permanent deletion"),
@ -653,7 +649,7 @@ class MessageLookup extends MessageLookupByLibrary {
"linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Device limit"),
"linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"),
"linkExpired": MessageLookupByLibrary.simpleMessage("Expired"),
"linkExpiresOn": m23,
"linkExpiresOn": m24,
"linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"),
"linkHasExpired":
MessageLookupByLibrary.simpleMessage("Link has expired"),
@ -706,16 +702,16 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Manage subscription"),
"mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"),
"matrix": MessageLookupByLibrary.simpleMessage("Matrix"),
"maxDeviceLimitSpikeHandling": m24,
"memoryCount": m25,
"maxDeviceLimitSpikeHandling": m25,
"memoryCount": m26,
"merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"),
"mobileWebDesktop":
MessageLookupByLibrary.simpleMessage("Mobile, Web, Desktop"),
"moderateStrength": MessageLookupByLibrary.simpleMessage("Moderate"),
"monthly": MessageLookupByLibrary.simpleMessage("Monthly"),
"moveItem": m26,
"moveItem": m27,
"moveToAlbum": MessageLookupByLibrary.simpleMessage("Move to album"),
"movedSuccessfullyTo": m27,
"movedSuccessfullyTo": m28,
"movedToTrash": MessageLookupByLibrary.simpleMessage("Moved to trash"),
"movingFilesToAlbum":
MessageLookupByLibrary.simpleMessage("Moving files to album..."),
@ -731,10 +727,6 @@ class MessageLookup extends MessageLookupByLibrary {
"noExifData": MessageLookupByLibrary.simpleMessage("No EXIF data"),
"noHiddenPhotosOrVideos":
MessageLookupByLibrary.simpleMessage("No hidden photos or videos"),
"noPasswordWarningPart1": MessageLookupByLibrary.simpleMessage(
"We don\'t store this password, so if you forget,"),
"noPasswordWarningPart2":
MessageLookupByLibrary.simpleMessage("we cannot decrypt your data"),
"noPhotosAreBeingBackedUpRightNow":
MessageLookupByLibrary.simpleMessage(
"No photos are being backed up right now"),
@ -760,12 +752,14 @@ class MessageLookup extends MessageLookupByLibrary {
"passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage(
"Password changed successfully"),
"passwordLock": MessageLookupByLibrary.simpleMessage("Password lock"),
"passwordStrength": m28,
"passwordStrength": m29,
"passwordWarning": MessageLookupByLibrary.simpleMessage(
"We don\'t store this password, so if you forget, <underline>we cannot decrypt your data</underline>"),
"paymentDetails":
MessageLookupByLibrary.simpleMessage("Payment details"),
"paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"),
"paymentFailedTalkToProvider": m29,
"paymentFailedWithReason": m30,
"paymentFailedTalkToProvider": m30,
"paymentFailedWithReason": m31,
"pendingSync": MessageLookupByLibrary.simpleMessage("Pending sync"),
"peopleUsingYourCode":
MessageLookupByLibrary.simpleMessage("People using your code"),
@ -789,14 +783,12 @@ class MessageLookup extends MessageLookupByLibrary {
"pleaseContactSupportIfTheProblemPersists":
MessageLookupByLibrary.simpleMessage(
"Please contact support if the problem persists"),
"pleaseEmailUsAt": m31,
"pleaseEmailUsAt": m32,
"pleaseGrantPermissions":
MessageLookupByLibrary.simpleMessage("Please grant permissions"),
"pleaseLoginAgain":
MessageLookupByLibrary.simpleMessage("Please login again"),
"pleaseSendAnEmailTo":
MessageLookupByLibrary.simpleMessage("Please send an email to"),
"pleaseSendTheLogsTo": m32,
"pleaseSendTheLogsTo": m33,
"pleaseTryAgain":
MessageLookupByLibrary.simpleMessage("Please try again"),
"pleaseVerifyTheCodeYouHaveEntered":
@ -828,7 +820,7 @@ class MessageLookup extends MessageLookupByLibrary {
"raiseTicket": MessageLookupByLibrary.simpleMessage("Raise ticket"),
"rateTheApp": MessageLookupByLibrary.simpleMessage("Rate the app"),
"rateUs": MessageLookupByLibrary.simpleMessage("Rate us"),
"rateUsOnStore": m33,
"rateUsOnStore": m34,
"recover": MessageLookupByLibrary.simpleMessage("Recover"),
"recoverAccount":
MessageLookupByLibrary.simpleMessage("Recover account"),
@ -859,7 +851,7 @@ class MessageLookup extends MessageLookupByLibrary {
"1. Give this code to your friends"),
"referralStep2": MessageLookupByLibrary.simpleMessage(
"2. They sign up for a paid plan"),
"referralStep3": m34,
"referralStep3": m35,
"referrals": MessageLookupByLibrary.simpleMessage("Referrals"),
"referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
"Referrals are currently paused"),
@ -883,7 +875,7 @@ class MessageLookup extends MessageLookupByLibrary {
"removeLink": MessageLookupByLibrary.simpleMessage("Remove link"),
"removeParticipant":
MessageLookupByLibrary.simpleMessage("Remove participant"),
"removeParticipantBody": m35,
"removeParticipantBody": m36,
"removePublicLink":
MessageLookupByLibrary.simpleMessage("Remove public link"),
"removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
@ -897,7 +889,7 @@ class MessageLookup extends MessageLookupByLibrary {
"renameFile": MessageLookupByLibrary.simpleMessage("Rename file"),
"renewSubscription":
MessageLookupByLibrary.simpleMessage("Renew subscription"),
"renewsOn": m36,
"renewsOn": m37,
"reportABug": MessageLookupByLibrary.simpleMessage("Report a bug"),
"reportBug": MessageLookupByLibrary.simpleMessage("Report bug"),
"resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"),
@ -944,8 +936,8 @@ class MessageLookup extends MessageLookupByLibrary {
"selectedItemsWillBeDeletedFromAllAlbumsAndMoved":
MessageLookupByLibrary.simpleMessage(
"Selected items will be deleted from all albums and moved to trash."),
"selectedPhotos": m37,
"selectedPhotosWithYours": m38,
"selectedPhotos": m38,
"selectedPhotosWithYours": m39,
"send": MessageLookupByLibrary.simpleMessage("Send"),
"sendEmail": MessageLookupByLibrary.simpleMessage("Send email"),
"sendInvite": MessageLookupByLibrary.simpleMessage("Send invite"),
@ -964,29 +956,29 @@ class MessageLookup extends MessageLookupByLibrary {
"shareAnAlbumNow":
MessageLookupByLibrary.simpleMessage("Share an album now"),
"shareLink": MessageLookupByLibrary.simpleMessage("Share link"),
"shareMyVerificationID": m39,
"shareMyVerificationID": m40,
"shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage(
"Share only with the people you want"),
"shareTextConfirmOthersVerificationID": m40,
"shareTextConfirmOthersVerificationID": m41,
"shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
"Download ente so we can easily share original quality photos and videos\n\nhttps://ente.io/#download"),
"shareTextReferralCode": m41,
"shareTextReferralCode": m42,
"shareWithNonenteUsers":
MessageLookupByLibrary.simpleMessage("Share with non-ente users"),
"shareWithPeopleSectionTitle": m42,
"shareWithPeopleSectionTitle": m43,
"shareYourFirstAlbum":
MessageLookupByLibrary.simpleMessage("Share your first album"),
"sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
"Create shared and collaborative albums with other ente users, including users on free plans."),
"sharedByMe": MessageLookupByLibrary.simpleMessage("Shared by me"),
"sharedWith": m43,
"sharedWith": m44,
"sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"),
"sharing": MessageLookupByLibrary.simpleMessage("Sharing..."),
"singleFileDeleteFromDevice": m44,
"singleFileDeleteFromDevice": m45,
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
"It will be deleted from all albums."),
"singleFileInBothLocalAndRemote": m45,
"singleFileInRemoteOnly": m46,
"singleFileInBothLocalAndRemote": m46,
"singleFileInRemoteOnly": m47,
"skip": MessageLookupByLibrary.simpleMessage("Skip"),
"social": MessageLookupByLibrary.simpleMessage("Social"),
"someItemsAreInBothEnteAndYourDevice":
@ -1017,12 +1009,12 @@ class MessageLookup extends MessageLookupByLibrary {
"Sorry, we could not generate secure keys on this device.\n\nplease sign up from a different device."),
"sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Success"),
"startBackup": MessageLookupByLibrary.simpleMessage("Start backup"),
"storageInGB": m47,
"storageInGB": m48,
"storageLimitExceeded":
MessageLookupByLibrary.simpleMessage("Storage limit exceeded"),
"strongStrength": MessageLookupByLibrary.simpleMessage("Strong"),
"subAlreadyLinkedErrMessage": m48,
"subWillBeCancelledOn": m49,
"subAlreadyLinkedErrMessage": m49,
"subWillBeCancelledOn": m50,
"subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"),
"subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
"Looks like your subscription has expired. Please subscribe to enable sharing."),
@ -1035,7 +1027,7 @@ class MessageLookup extends MessageLookupByLibrary {
"suggestFeatures":
MessageLookupByLibrary.simpleMessage("Suggest features"),
"support": MessageLookupByLibrary.simpleMessage("Support"),
"syncProgress": m50,
"syncProgress": m51,
"syncStopped": MessageLookupByLibrary.simpleMessage("Sync stopped"),
"syncing": MessageLookupByLibrary.simpleMessage("Syncing..."),
"systemTheme": MessageLookupByLibrary.simpleMessage("System"),
@ -1065,7 +1057,7 @@ class MessageLookup extends MessageLookupByLibrary {
"theseItemsWillBeDeletedFromYourDevice":
MessageLookupByLibrary.simpleMessage(
"These items will be deleted from your device."),
"theyAlsoGetXGb": m51,
"theyAlsoGetXGb": m52,
"theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage(
"They will be deleted from all albums."),
"thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage(
@ -1081,7 +1073,7 @@ class MessageLookup extends MessageLookupByLibrary {
"This email is already in use"),
"thisImageHasNoExifData":
MessageLookupByLibrary.simpleMessage("This image has no exif data"),
"thisIsPersonVerificationId": m52,
"thisIsPersonVerificationId": m53,
"thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
"This is your Verification ID"),
"thisWillLogYouOutOfTheFollowingDevice":
@ -1147,7 +1139,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Verification ID"),
"verify": MessageLookupByLibrary.simpleMessage("Verify"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"),
"verifyEmailID": m53,
"verifyEmailID": m54,
"verifyPassword":
MessageLookupByLibrary.simpleMessage("Verify password"),
"verifying": MessageLookupByLibrary.simpleMessage("Verifying..."),
@ -1174,7 +1166,7 @@ class MessageLookup extends MessageLookupByLibrary {
"weveSentAMailTo":
MessageLookupByLibrary.simpleMessage("We\'ve sent a mail to"),
"yearly": MessageLookupByLibrary.simpleMessage("Yearly"),
"yearsAgo": m54,
"yearsAgo": m55,
"yes": MessageLookupByLibrary.simpleMessage("Yes"),
"yesCancel": MessageLookupByLibrary.simpleMessage("Yes, cancel"),
"yesConvertToViewer":
@ -1202,7 +1194,7 @@ class MessageLookup extends MessageLookupByLibrary {
"You cannot share with yourself"),
"youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage(
"You don\'t have any archived items."),
"youHaveSuccessfullyFreedUp": m55,
"youHaveSuccessfullyFreedUp": m56,
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
"Your account has been deleted"),
"yourPlanWasSuccessfullyDowngraded":

View file

@ -290,24 +290,12 @@ class S {
);
}
/// `Please send an email to`
String get pleaseSendAnEmailTo {
/// `Please send an email to <warning>account-deletion@ente.io</warning> from your registered email address.`
String get deleteEmailRequest {
return Intl.message(
'Please send an email to',
name: 'pleaseSendAnEmailTo',
desc:
'This text is part of the sentence \'Please send an email to email@ente.io from your registered email address.\'',
args: [],
);
}
/// `from your registered email address.`
String get fromYourRegisteredEmailAddress {
return Intl.message(
'from your registered email address.',
name: 'fromYourRegisteredEmailAddress',
desc:
'This text is part of the sentence \'Please send an email to email@ente.io from your registered email address.\'',
'Please send an email to <warning>account-deletion@ente.io</warning> from your registered email address.',
name: 'deleteEmailRequest',
desc: '',
args: [],
);
}
@ -632,24 +620,12 @@ class S {
);
}
/// `We don't store this password, so if you forget,`
String get noPasswordWarningPart1 {
/// `We don't store this password, so if you forget, <underline>we cannot decrypt your data</underline>`
String get passwordWarning {
return Intl.message(
'We don\'t store this password, so if you forget,',
name: 'noPasswordWarningPart1',
desc:
'This text is part1 the sentence \'We don\'t store this password, so if you forget, we cannot decrypt your data.\'',
args: [],
);
}
/// `we cannot decrypt your data`
String get noPasswordWarningPart2 {
return Intl.message(
'we cannot decrypt your data',
name: 'noPasswordWarningPart2',
desc:
'This text is part2 the sentence \'We don\'t store this password, so if you forget, we cannot decrypt your data.\'',
'We don\'t store this password, so if you forget, <underline>we cannot decrypt your data</underline>',
name: 'passwordWarning',
desc: '',
args: [],
);
}
@ -2497,35 +2473,12 @@ class S {
);
}
/// `Also delete the photos (and videos) present in this album from `
String get deleteAlbumDialogPart1 {
/// `Also delete the photos (and videos) present in this album from <bold>all</bold> other albums they are part of?`
String get deleteAlbumDialog {
return Intl.message(
'Also delete the photos (and videos) present in this album from ',
name: 'deleteAlbumDialogPart1',
desc:
'Part of this string \'Also delete the photos (and videos) present in this album from all other albums they are part of?\'',
args: [],
);
}
/// `all`
String get deleteAlbumDialogPart2Bold {
return Intl.message(
'all',
name: 'deleteAlbumDialogPart2Bold',
desc:
'Part of this string \'Also delete the photos (and videos) present in this album from all other albums they are part of?\'',
args: [],
);
}
/// ` other albums they are part of?`
String get deleteAlbumDialogPart3 {
return Intl.message(
' other albums they are part of?',
name: 'deleteAlbumDialogPart3',
desc:
'Part of this string \'Also delete the photos (and videos) present in this album from all other albums they are part of?\'',
'Also delete the photos (and videos) present in this album from <bold>all</bold> other albums they are part of?',
name: 'deleteAlbumDialog',
desc: '',
args: [],
);
}
@ -4341,25 +4294,13 @@ class S {
);
}
/// `Please contact`
String get contactFamilyAdminPart1 {
/// `Please contact <green>{familyAdminEmail}</green> to manage your subscription`
String contactFamilyAdmin(Object familyAdminEmail) {
return Intl.message(
'Please contact',
name: 'contactFamilyAdminPart1',
desc:
'Part1 of the sentence \'Please contact {familyAdminName} to manage your subscription\'',
args: [],
);
}
/// `to manage your subscription`
String get contactFamilyAdminPart2 {
return Intl.message(
'to manage your subscription',
name: 'contactFamilyAdminPart2',
desc:
'Part2 of the sentence \'Please contact {familyAdminName} to manage your subscription\'',
args: [],
'Please contact <green>$familyAdminEmail</green> to manage your subscription',
name: 'contactFamilyAdmin',
desc: '',
args: [familyAdminEmail],
);
}

View file

@ -23,14 +23,7 @@
"deleteReason4": "My reason isnt listed",
"sendEmail": "Send email",
"deleteRequestSLAText": "Your request will be processed within 72 hours.",
"pleaseSendAnEmailTo": "Please send an email to",
"@pleaseSendAnEmailTo": {
"description": "This text is part of the sentence 'Please send an email to email@ente.io from your registered email address.'"
},
"fromYourRegisteredEmailAddress": "from your registered email address.",
"@fromYourRegisteredEmailAddress": {
"description": "This text is part of the sentence 'Please send an email to email@ente.io from your registered email address.'"
},
"deleteEmailRequest": "Please send an email to <warning>account-deletion@ente.io</warning> from your registered email address.",
"ok": "Ok",
"createAccount": "Create account",
"createNewAccount": "Create new account",
@ -63,14 +56,7 @@
"changePasswordTitle": "Change password",
"resetPasswordTitle": "Reset password",
"encryptionKeys": "Encryption keys",
"noPasswordWarningPart1": "We don't store this password, so if you forget,",
"@noPasswordWarningPart1": {
"description": "This text is part1 the sentence 'We don't store this password, so if you forget, we cannot decrypt your data.'"
},
"noPasswordWarningPart2": "we cannot decrypt your data",
"@noPasswordWarningPart2": {
"description": "This text is part2 the sentence 'We don't store this password, so if you forget, we cannot decrypt your data.'"
},
"passwordWarning": "We don't store this password, so if you forget, <underline>we cannot decrypt your data</underline>",
"enterPasswordToEncrypt": "Enter a password we can use to encrypt your data",
"enterNewPasswordToEncrypt": "Enter a new password we can use to encrypt your data",
"weakStrength": "Weak",
@ -340,18 +326,7 @@
"canOnlyRemoveFilesOwnedByYou": "Can only remove files owned by you",
"deleteSharedAlbum": "Delete shared album?",
"deleteAlbum": "Delete album",
"deleteAlbumDialogPart1": "Also delete the photos (and videos) present in this album from ",
"@deleteAlbumDialogPart1": {
"description": "Part of this string 'Also delete the photos (and videos) present in this album from all other albums they are part of?'"
},
"deleteAlbumDialogPart2Bold": "all",
"@deleteAlbumDialogPart2Bold": {
"description": "Part of this string 'Also delete the photos (and videos) present in this album from all other albums they are part of?'"
},
"deleteAlbumDialogPart3": " other albums they are part of?",
"@deleteAlbumDialogPart3": {
"description": "Part of this string 'Also delete the photos (and videos) present in this album from all other albums they are part of?'"
},
"deleteAlbumDialog": "Also delete the photos (and videos) present in this album from <bold>all</bold> other albums they are part of?",
"deleteSharedAlbumDialogBody": "The album will be deleted for everyone\n\nYou will lose access to shared photos in this album that are owned by others",
"yesRemove": "Yes, remove",
"creatingLink": "Creating link...",
@ -628,16 +603,7 @@
"pleaseWaitForSometimeBeforeRetrying": "Please wait for sometime before retrying",
"paymentFailedWithReason": "Unfortunately your payment failed due to {reason}",
"youAreOnAFamilyPlan": "You are on a family plan!",
"contactFamilyAdminPart1": "Please contact",
"@contactFamilyAdminPart1": {
"description": "Part1 of the sentence 'Please contact {familyAdminName} to manage your subscription'",
"type": "text"
},
"contactFamilyAdminPart2": "to manage your subscription",
"@contactFamilyAdminPart2": {
"description": "Part2 of the sentence 'Please contact {familyAdminName} to manage your subscription'",
"type": "text"
},
"contactFamilyAdmin": "Please contact <green>{familyAdminEmail}</green> to manage your subscription",
"leaveFamily": "Leave family",
"areYouSureThatYouWantToLeaveTheFamily": "Are you sure that you want to leave the family plan?",
"leave": "Leave",

View file

@ -340,8 +340,11 @@ class UserService {
} catch (e) {
await dialog.hide();
_logger.severe(e);
showErrorDialog(context, S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain);
showErrorDialog(
context,
S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain,
);
}
}
@ -373,13 +376,19 @@ class UserService {
Bus.instance.fire(UserDetailsChangedEvent());
return;
}
showErrorDialog(context, S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain);
showErrorDialog(
context,
S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain,
);
} on DioError catch (e) {
await dialog.hide();
if (e.response != null && e.response!.statusCode == 403) {
showErrorDialog(
context, S.of(context).oops, S.of(context).thisEmailIsAlreadyInUse);
context,
S.of(context).oops,
S.of(context).thisEmailIsAlreadyInUse,
);
} else {
showErrorDialog(
context,
@ -390,8 +399,11 @@ class UserService {
} catch (e) {
await dialog.hide();
_logger.severe(e);
showErrorDialog(context, S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain);
showErrorDialog(
context,
S.of(context).oops,
S.of(context).verificationFailedPleaseTryAgain,
);
}
}
@ -612,7 +624,9 @@ class UserService {
);
if (response.statusCode == 200) {
showShortToast(
context, S.of(context).twofactorAuthenticationSuccessfullyReset);
context,
S.of(context).twofactorAuthenticationSuccessfullyReset,
);
await _saveConfiguration(response);
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(
@ -733,7 +747,9 @@ class UserService {
Future<void> disableTwoFactor(BuildContext context) async {
final dialog = createProgressDialog(
context, S.of(context).disablingTwofactorAuthentication);
context,
S.of(context).disablingTwofactorAuthentication,
);
await dialog.show();
try {
await _enteDio.post(

View file

@ -14,6 +14,7 @@ import 'package:photos/utils/crypto_util.dart';
import 'package:photos/utils/dialog_util.dart';
import 'package:photos/utils/email_util.dart';
import "package:photos/utils/toast_util.dart";
import "package:styled_text/styled_text.dart";
class DeleteAccountPage extends StatefulWidget {
const DeleteAccountPage({
@ -280,29 +281,17 @@ class _DeleteAccountPageState extends State<DeleteAccountPage> {
color: Colors.red,
),
),
content: RichText(
text: TextSpan(
children: [
TextSpan(
text: S.of(context).pleaseSendAnEmailTo,
content: StyledText(
text:
"${S.of(context).deleteEmailRequest}\n\n${S.of(context).deleteRequestSLAText}",
tags: {
'warning': StyledTextTag(
style: TextStyle(
fontWeight: FontWeight.bold,
color: Colors.orange[300],
),
TextSpan(
text: "account-deletion@ente.io",
style: TextStyle(
color: Colors.orange[300],
),
),
TextSpan(
text:
" ${S.of(context).fromYourRegisteredEmailAddress}\n\n${S.of(context).deleteRequestSLAText}",
),
],
style: TextStyle(
color: Theme.of(context).colorScheme.onSurface,
height: 1.5,
fontSize: 16,
),
),
},
),
actions: [
TextButton(

View file

@ -15,6 +15,7 @@ import 'package:photos/ui/payment/subscription.dart';
import 'package:photos/utils/dialog_util.dart';
import 'package:photos/utils/navigation_util.dart';
import 'package:photos/utils/toast_util.dart';
import "package:styled_text/styled_text.dart";
enum PasswordEntryMode {
set,
@ -173,26 +174,20 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
const Padding(padding: EdgeInsets.all(8)),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: RichText(
text: TextSpan(
style: Theme.of(context)
.textTheme
.subtitle1!
.copyWith(fontSize: 14),
children: [
TextSpan(
text: '${S.of(context).noPasswordWarningPart1} ',
),
TextSpan(
text: S.of(context).noPasswordWarningPart2,
style:
Theme.of(context).textTheme.subtitle1!.copyWith(
fontSize: 14,
decoration: TextDecoration.underline,
),
),
],
),
child: StyledText(
text: S.of(context).passwordWarning,
style: Theme.of(context)
.textTheme
.subtitle1!
.copyWith(fontSize: 14),
tags: {
'underline': StyledTextTag(
style: Theme.of(context).textTheme.subtitle1!.copyWith(
fontSize: 14,
decoration: TextDecoration.underline,
),
),
},
),
),
const Padding(padding: EdgeInsets.all(12)),

View file

@ -25,6 +25,7 @@ import 'package:photos/utils/dialog_util.dart';
import 'package:photos/utils/email_util.dart';
import 'package:photos/utils/share_util.dart';
import 'package:photos/utils/toast_util.dart';
import "package:styled_text/styled_text.dart";
class CollectionActions {
final Logger logger = Logger((CollectionActions).toString());
@ -96,8 +97,11 @@ class CollectionActions {
BuildContext context,
List<File> files,
) async {
final dialog = createProgressDialog(context, S.of(context).creatingLink,
isDismissible: true);
final dialog = createProgressDialog(
context,
S.of(context).creatingLink,
isDismissible: true,
);
dialog.show();
try {
// create album with emptyName, use collectionCreationTime on UI to
@ -143,31 +147,32 @@ class CollectionActions {
User user,
) async {
final actionResult = await showActionSheet(
context: context,
buttons: [
ButtonWidget(
buttonType: ButtonType.critical,
isInAlert: true,
shouldStickToDarkTheme: true,
buttonAction: ButtonAction.first,
shouldSurfaceExecutionStates: true,
labelText: S.of(context).yesRemove,
onTap: () async {
final newSharees = await CollectionsService.instance
.unshare(collection.id, user.email);
collection.updateSharees(newSharees);
},
),
ButtonWidget(
buttonType: ButtonType.secondary,
buttonAction: ButtonAction.cancel,
isInAlert: true,
shouldStickToDarkTheme: true,
labelText: S.of(context).cancel,
)
],
title: S.of(context).removeWithQuestionMark,
body: S.of(context).removeParticipantBody(user.email));
context: context,
buttons: [
ButtonWidget(
buttonType: ButtonType.critical,
isInAlert: true,
shouldStickToDarkTheme: true,
buttonAction: ButtonAction.first,
shouldSurfaceExecutionStates: true,
labelText: S.of(context).yesRemove,
onTap: () async {
final newSharees = await CollectionsService.instance
.unshare(collection.id, user.email);
collection.updateSharees(newSharees);
},
),
ButtonWidget(
buttonType: ButtonType.secondary,
buttonAction: ButtonAction.cancel,
isInAlert: true,
shouldStickToDarkTheme: true,
labelText: S.of(context).cancel,
)
],
title: S.of(context).removeWithQuestionMark,
body: S.of(context).removeParticipantBody(user.email),
);
if (actionResult?.action != null) {
if (actionResult!.action == ButtonAction.error) {
showGenericErrorDialog(context: context);
@ -193,16 +198,22 @@ class CollectionActions {
);
return false;
} else if (email.trim() == Configuration.instance.getEmail()) {
await showErrorDialog(context, S.of(context).oops,
S.of(context).youCannotShareWithYourself);
await showErrorDialog(
context,
S.of(context).oops,
S.of(context).youCannotShareWithYourself,
);
return false;
}
ProgressDialog? dialog;
String? publicKey;
if (showProgress) {
dialog = createProgressDialog(context, S.of(context).sharing,
isDismissible: true);
dialog = createProgressDialog(
context,
S.of(context).sharing,
isDismissible: true,
);
await dialog.show();
}
@ -325,22 +336,14 @@ class CollectionActions {
isInAlert: true,
),
],
bodyWidget: RichText(
text: TextSpan(
style: textTheme.body.copyWith(color: textMutedDark),
children: <TextSpan>[
TextSpan(
text: S.of(bContext).deleteAlbumDialogPart1,
),
TextSpan(
text: S.of(bContext).deleteAlbumDialogPart2Bold,
style: textTheme.body.copyWith(color: textBaseDark),
),
TextSpan(
text: S.of(bContext).deleteAlbumDialogPart3,
),
],
),
bodyWidget: StyledText(
text: S.of(bContext).deleteAlbumDialog,
style: textTheme.body.copyWith(color: textMutedDark),
tags: {
'bold': StyledTextTag(
style: textTheme.body.copyWith(color: textBaseDark),
),
},
),
actionSheetType: ActionSheetType.defaultActionSheet,
);

View file

@ -3,8 +3,10 @@ import 'package:logging/logging.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/models/user_details.dart';
import 'package:photos/services/user_service.dart';
import "package:photos/theme/ente_theme.dart";
import 'package:photos/ui/components/buttons/button_widget.dart';
import 'package:photos/utils/dialog_util.dart';
import "package:styled_text/styled_text.dart";
class ChildSubscriptionWidget extends StatelessWidget {
const ChildSubscriptionWidget({
@ -35,24 +37,16 @@ class ChildSubscriptionWidget extends StatelessWidget {
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: RichText(
textAlign: TextAlign.center,
text: TextSpan(
children: [
TextSpan(
text: S.of(context).contactFamilyAdminPart1 + " ",
child: StyledText(
text: S.of(context).contactFamilyAdmin(familyAdmin),
style: Theme.of(context).textTheme.bodyText1,
tags: {
'green': StyledTextTag(
style: TextStyle(
color: getEnteColorScheme(context).primary500,
),
TextSpan(
text: familyAdmin,
style:
const TextStyle(color: Color.fromRGBO(29, 185, 84, 1)),
),
TextSpan(
text: " " + S.of(context).contactFamilyAdminPart2,
),
],
style: Theme.of(context).textTheme.bodyText1,
),
),
},
),
),
const Padding(
@ -90,17 +84,20 @@ class ChildSubscriptionWidget extends StatelessWidget {
Expanded(
child: Align(
alignment: Alignment.bottomCenter,
child: RichText(
textAlign: TextAlign.center,
text: TextSpan(
children: [
TextSpan(
text: S
.of(context)
.pleaseContactSupportAndWeWillBeHappyToHelp,
style: Theme.of(context).textTheme.bodyText2,
),
],
child: Padding(
padding: const EdgeInsets.all(20),
child: RichText(
textAlign: TextAlign.center,
text: TextSpan(
children: [
TextSpan(
text: S
.of(context)
.pleaseContactSupportAndWeWillBeHappyToHelp,
style: Theme.of(context).textTheme.bodyText2,
),
],
),
),
),
),

View file

@ -1634,6 +1634,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
styled_text:
dependency: "direct main"
description:
name: styled_text
sha256: f72928d1ebe8cb149e3b34a689cb1ddca696b808187cf40ac3a0bd183dff379c
url: "https://pub.dev"
source: hosted
version: "7.0.0"
syncfusion_flutter_core:
dependency: "direct main"
description:
@ -1984,6 +1992,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.2.2"
xmlstream:
dependency: transitive
description:
name: xmlstream
sha256: "2d10c69a9d5fc46f71798b80ee6db15bc0d5bf560fdbdd264776cbeee0c83631"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
yaml:
dependency: transitive
description:

View file

@ -107,6 +107,7 @@ dependencies:
sqflite: ^2.0.0+3
sqflite_migration: ^0.3.0
step_progress_indicator: ^1.0.2
styled_text: ^7.0.0
syncfusion_flutter_core: ^19.2.49
syncfusion_flutter_sliders: ^19.2.49
tflite_flutter: ^0.9.0