Procházet zdrojové kódy

Use StyledText to merge strings (#963)

Vishnu Mohandas před 2 roky
rodič
revize
359dc0c06c

+ 108 - 116
lib/generated/intl/messages_en.dart

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

+ 21 - 80
lib/generated/l10n.dart

@@ -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(
     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: [],
       args: [],
     );
     );
   }
   }
@@ -632,24 +620,12 @@ class S {
     );
     );
   }
   }
 
 
-  /// `We don't store this password, so if you forget,`
-  String get noPasswordWarningPart1 {
-    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 {
+  /// `We don't store this password, so if you forget, <underline>we cannot decrypt your data</underline>`
+  String get passwordWarning {
     return Intl.message(
     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: [],
       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(
     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: [],
       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(
     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],
     );
     );
   }
   }
 
 

+ 4 - 38
lib/l10n/intl_en.arb

@@ -23,14 +23,7 @@
   "deleteReason4": "My reason isn’t listed",
   "deleteReason4": "My reason isn’t listed",
   "sendEmail": "Send email",
   "sendEmail": "Send email",
   "deleteRequestSLAText": "Your request will be processed within 72 hours.",
   "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",
   "ok": "Ok",
   "createAccount": "Create account",
   "createAccount": "Create account",
   "createNewAccount": "Create new account",
   "createNewAccount": "Create new account",
@@ -63,14 +56,7 @@
   "changePasswordTitle": "Change password",
   "changePasswordTitle": "Change password",
   "resetPasswordTitle": "Reset password",
   "resetPasswordTitle": "Reset password",
   "encryptionKeys": "Encryption keys",
   "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",
   "enterPasswordToEncrypt": "Enter a password we can use to encrypt your data",
   "enterNewPasswordToEncrypt": "Enter a new password we can use to encrypt your data",
   "enterNewPasswordToEncrypt": "Enter a new password we can use to encrypt your data",
   "weakStrength": "Weak",
   "weakStrength": "Weak",
@@ -340,18 +326,7 @@
   "canOnlyRemoveFilesOwnedByYou": "Can only remove files owned by you",
   "canOnlyRemoveFilesOwnedByYou": "Can only remove files owned by you",
   "deleteSharedAlbum": "Delete shared album?",
   "deleteSharedAlbum": "Delete shared album?",
   "deleteAlbum": "Delete 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",
   "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",
   "yesRemove": "Yes, remove",
   "creatingLink": "Creating link...",
   "creatingLink": "Creating link...",
@@ -628,16 +603,7 @@
   "pleaseWaitForSometimeBeforeRetrying": "Please wait for sometime before retrying",
   "pleaseWaitForSometimeBeforeRetrying": "Please wait for sometime before retrying",
   "paymentFailedWithReason": "Unfortunately your payment failed due to {reason}",
   "paymentFailedWithReason": "Unfortunately your payment failed due to {reason}",
   "youAreOnAFamilyPlan": "You are on a family plan!",
   "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",
   "leaveFamily": "Leave family",
   "areYouSureThatYouWantToLeaveTheFamily": "Are you sure that you want to leave the family plan?",
   "areYouSureThatYouWantToLeaveTheFamily": "Are you sure that you want to leave the family plan?",
   "leave": "Leave",
   "leave": "Leave",

+ 25 - 9
lib/services/user_service.dart

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

+ 10 - 21
lib/ui/account/delete_account_page.dart

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

+ 15 - 20
lib/ui/account/password_entry_page.dart

@@ -15,6 +15,7 @@ import 'package:photos/ui/payment/subscription.dart';
 import 'package:photos/utils/dialog_util.dart';
 import 'package:photos/utils/dialog_util.dart';
 import 'package:photos/utils/navigation_util.dart';
 import 'package:photos/utils/navigation_util.dart';
 import 'package:photos/utils/toast_util.dart';
 import 'package:photos/utils/toast_util.dart';
+import "package:styled_text/styled_text.dart";
 
 
 enum PasswordEntryMode {
 enum PasswordEntryMode {
   set,
   set,
@@ -173,26 +174,20 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
                 const Padding(padding: EdgeInsets.all(8)),
                 const Padding(padding: EdgeInsets.all(8)),
                 Padding(
                 Padding(
                   padding: const EdgeInsets.symmetric(horizontal: 20),
                   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)),
                 const Padding(padding: EdgeInsets.all(12)),

+ 50 - 47
lib/ui/actions/collection/collection_sharing_actions.dart

@@ -25,6 +25,7 @@ import 'package:photos/utils/dialog_util.dart';
 import 'package:photos/utils/email_util.dart';
 import 'package:photos/utils/email_util.dart';
 import 'package:photos/utils/share_util.dart';
 import 'package:photos/utils/share_util.dart';
 import 'package:photos/utils/toast_util.dart';
 import 'package:photos/utils/toast_util.dart';
+import "package:styled_text/styled_text.dart";
 
 
 class CollectionActions {
 class CollectionActions {
   final Logger logger = Logger((CollectionActions).toString());
   final Logger logger = Logger((CollectionActions).toString());
@@ -96,8 +97,11 @@ class CollectionActions {
     BuildContext context,
     BuildContext context,
     List<File> files,
     List<File> files,
   ) async {
   ) async {
-    final dialog = createProgressDialog(context, S.of(context).creatingLink,
-        isDismissible: true);
+    final dialog = createProgressDialog(
+      context,
+      S.of(context).creatingLink,
+      isDismissible: true,
+    );
     dialog.show();
     dialog.show();
     try {
     try {
       // create album with emptyName, use collectionCreationTime on UI to
       // create album with emptyName, use collectionCreationTime on UI to
@@ -143,31 +147,32 @@ class CollectionActions {
     User user,
     User user,
   ) async {
   ) async {
     final actionResult = await showActionSheet(
     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 != null) {
       if (actionResult!.action == ButtonAction.error) {
       if (actionResult!.action == ButtonAction.error) {
         showGenericErrorDialog(context: context);
         showGenericErrorDialog(context: context);
@@ -193,16 +198,22 @@ class CollectionActions {
       );
       );
       return false;
       return false;
     } else if (email.trim() == Configuration.instance.getEmail()) {
     } 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;
       return false;
     }
     }
 
 
     ProgressDialog? dialog;
     ProgressDialog? dialog;
     String? publicKey;
     String? publicKey;
     if (showProgress) {
     if (showProgress) {
-      dialog = createProgressDialog(context, S.of(context).sharing,
-          isDismissible: true);
+      dialog = createProgressDialog(
+        context,
+        S.of(context).sharing,
+        isDismissible: true,
+      );
       await dialog.show();
       await dialog.show();
     }
     }
 
 
@@ -325,22 +336,14 @@ class CollectionActions {
           isInAlert: true,
           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,
       actionSheetType: ActionSheetType.defaultActionSheet,
     );
     );

+ 25 - 28
lib/ui/payment/child_subscription_widget.dart

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

+ 16 - 0
pubspec.lock

@@ -1634,6 +1634,14 @@ packages:
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
     version: "1.2.0"
     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:
   syncfusion_flutter_core:
     dependency: "direct main"
     dependency: "direct main"
     description:
     description:
@@ -1984,6 +1992,14 @@ packages:
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
     version: "6.2.2"
     version: "6.2.2"
+  xmlstream:
+    dependency: transitive
+    description:
+      name: xmlstream
+      sha256: "2d10c69a9d5fc46f71798b80ee6db15bc0d5bf560fdbdd264776cbeee0c83631"
+      url: "https://pub.dev"
+    source: hosted
+    version: "1.0.0"
   yaml:
   yaml:
     dependency: transitive
     dependency: transitive
     description:
     description:

+ 1 - 0
pubspec.yaml

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