Quellcode durchsuchen

l10n: extract strings

Neeraj Gupta vor 2 Jahren
Ursprung
Commit
765d7dd631

+ 69 - 31
lib/generated/intl/messages_en.dart

@@ -30,45 +30,51 @@ class MessageLookup extends MessageLookupByLibrary {
             'other': 'You have claimed ${storageAmountInGb} Gb so far!',
           })}";
 
-  static String m2(supportEmail) =>
+  static String m2(albumName) =>
+      "This will remove the public link for accessing \"${albumName}\".";
+
+  static String m3(supportEmail) =>
       "Please drop an email to ${supportEmail} from your registered email address";
 
-  static String m3(email) =>
+  static String m4(email) =>
       "${email} does not have an ente account.\n\nSend them an invite to share photos.";
 
-  static String m4(storageAmountInGB) =>
+  static String m5(storageAmountInGB) =>
       "${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code";
 
-  static String m5(expiryTime) => "Link will expire on ${expiryTime}";
+  static String m6(expiryTime) => "Link will expire on ${expiryTime}";
 
-  static String m6(maxValue) =>
+  static String m7(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 m7(passwordStrengthValue) =>
+  static String m8(passwordStrengthValue) =>
       "Password strength: ${passwordStrengthValue}";
 
-  static String m8(storageInGB) => "3. Both of you get ${storageInGB} GB* free";
+  static String m9(storageInGB) => "3. Both of you get ${storageInGB} GB* free";
+
+  static String m10(userEmail) =>
+      "${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album";
 
-  static String m9(verificationID) =>
+  static String m11(verificationID) =>
       "Here\'s my verification ID: ${verificationID} for ente.io.";
 
-  static String m10(verificationID) =>
+  static String m12(verificationID) =>
       "Hey, can you confirm that this is your ente.io verification ID: ${verificationID}";
 
-  static String m11(referralCode, referralStorageInGB) =>
+  static String m13(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 m12(numberOfPeople) =>
+  static String m14(numberOfPeople) =>
       "${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}";
 
-  static String m13(storageAmountInGB) => "${storageAmountInGB} GB";
+  static String m15(storageAmountInGB) => "${storageAmountInGB} GB";
 
-  static String m14(storageAmountInGB) =>
+  static String m16(storageAmountInGB) =>
       "They also get ${storageAmountInGB} GB";
 
-  static String m15(email) => "This is ${email}\'s Verification ID";
+  static String m17(email) => "This is ${email}\'s Verification ID";
 
-  static String m16(email) => "Verify ${email}";
+  static String m18(email) => "Verify ${email}";
 
   final messages = _notInlinedMessages(_notInlinedMessages);
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@@ -104,8 +110,11 @@ class MessageLookup extends MessageLookupByLibrary {
         "and": MessageLookupByLibrary.simpleMessage("and"),
         "apply": MessageLookupByLibrary.simpleMessage("Apply"),
         "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Apply code"),
+        "archive": MessageLookupByLibrary.simpleMessage("Archive"),
         "askDeleteReason": MessageLookupByLibrary.simpleMessage(
             "What is the main reason you are deleting your account?"),
+        "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage(
+            "Please authenticate to view your hidden files"),
         "byClickingLogInIAgreeToThe": MessageLookupByLibrary.simpleMessage(
             "By clicking log in, I agree to the"),
         "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage(
@@ -158,10 +167,14 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage(
                 "Copy-paste this code\nto your authenticator app"),
         "createAccount": MessageLookupByLibrary.simpleMessage("Create account"),
+        "createAlbumActionHint": MessageLookupByLibrary.simpleMessage(
+            "Long press to select photos and click + to create an album"),
         "createNewAccount":
             MessageLookupByLibrary.simpleMessage("Create new account"),
         "createPublicLink":
             MessageLookupByLibrary.simpleMessage("Create public link"),
+        "creatingLink":
+            MessageLookupByLibrary.simpleMessage("Creating link..."),
         "custom": MessageLookupByLibrary.simpleMessage("Custom"),
         "decrypting": MessageLookupByLibrary.simpleMessage("Decrypting..."),
         "deleteAccount": MessageLookupByLibrary.simpleMessage("Delete account"),
@@ -170,8 +183,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?"),
         "deleteConfirmDialogBody": MessageLookupByLibrary.simpleMessage(
             "You are about to permanently delete your account and all its data.\nThis action is irreversible."),
+        "deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"),
         "deleteReason1": MessageLookupByLibrary.simpleMessage(
             "It’s missing a key feature that I need"),
         "deleteReason2": MessageLookupByLibrary.simpleMessage(
@@ -191,12 +211,13 @@ 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": m2,
         "doThisLater": MessageLookupByLibrary.simpleMessage("Do this later"),
         "done": MessageLookupByLibrary.simpleMessage("Done"),
-        "dropSupportEmail": m2,
+        "dropSupportEmail": m3,
         "eligible": MessageLookupByLibrary.simpleMessage("eligible"),
         "email": MessageLookupByLibrary.simpleMessage("Email"),
-        "emailNoEnteAccount": m3,
+        "emailNoEnteAccount": m4,
         "encryption": MessageLookupByLibrary.simpleMessage("Encryption"),
         "encryptionKeys":
             MessageLookupByLibrary.simpleMessage("Encryption keys"),
@@ -230,22 +251,26 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Failed to apply code"),
         "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage(
             "Unable to fetch referral details. Please try again later."),
+        "failedToLoadAlbums":
+            MessageLookupByLibrary.simpleMessage("Failed to load albums"),
         "faq": MessageLookupByLibrary.simpleMessage("FAQ"),
         "feedback": MessageLookupByLibrary.simpleMessage("Feedback"),
         "forgotPassword":
             MessageLookupByLibrary.simpleMessage("Forgot password"),
         "freeStorageClaimed":
             MessageLookupByLibrary.simpleMessage("Free storage claimed"),
-        "freeStorageOnReferralSuccess": m4,
+        "freeStorageOnReferralSuccess": m5,
         "freeStorageUsable":
             MessageLookupByLibrary.simpleMessage("Free storage usable"),
         "fromYourRegisteredEmailAddress": MessageLookupByLibrary.simpleMessage(
             "from your registered email address."),
         "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
             "Generating encryption keys..."),
+        "hidden": MessageLookupByLibrary.simpleMessage("Hidden"),
         "howItWorks": MessageLookupByLibrary.simpleMessage("How it works"),
         "howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage(
             "Please ask them to long-press their email address on the settings screen, and verify that the IDs on both devices match."),
+        "importing": MessageLookupByLibrary.simpleMessage("Importing...."),
         "incorrectPasswordTitle":
             MessageLookupByLibrary.simpleMessage("Incorrect password"),
         "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage(
@@ -259,16 +284,18 @@ class MessageLookup extends MessageLookupByLibrary {
         "invalidKey": MessageLookupByLibrary.simpleMessage("Invalid key"),
         "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage(
             "The recovery key you entered is not valid. Please make sure it "),
+        "inviteToEnte": MessageLookupByLibrary.simpleMessage("Invite to ente"),
         "inviteYourFriends":
             MessageLookupByLibrary.simpleMessage("Invite your friends"),
         "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage(
             "Selected items will be removed from this album"),
+        "keepPhotos": MessageLookupByLibrary.simpleMessage("Keep Photos"),
         "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage(
             "Kindly help us with this information"),
         "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Device limit"),
         "linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"),
         "linkExpired": MessageLookupByLibrary.simpleMessage("Expired"),
-        "linkExpiresOn": m5,
+        "linkExpiresOn": m6,
         "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"),
         "linkHasExpired":
             MessageLookupByLibrary.simpleMessage("Link has expired"),
@@ -279,7 +306,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "manage": MessageLookupByLibrary.simpleMessage("Manage"),
         "manageLink": MessageLookupByLibrary.simpleMessage("Manage link"),
         "manageParticipants": MessageLookupByLibrary.simpleMessage("Manage"),
-        "maxDeviceLimitSpikeHandling": m6,
+        "maxDeviceLimitSpikeHandling": m7,
         "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderate"),
         "never": MessageLookupByLibrary.simpleMessage("Never"),
         "noPasswordWarningPart1": MessageLookupByLibrary.simpleMessage(
@@ -300,7 +327,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage(
             "Password changed successfully"),
         "passwordLock": MessageLookupByLibrary.simpleMessage("Password lock"),
-        "passwordStrength": m7,
+        "passwordStrength": m8,
         "peopleUsingYourCode":
             MessageLookupByLibrary.simpleMessage("People using your code"),
         "pleaseSendAnEmailTo":
@@ -340,7 +367,7 @@ class MessageLookup extends MessageLookupByLibrary {
             "1. Give this code to your friends"),
         "referralStep2": MessageLookupByLibrary.simpleMessage(
             "2. They sign up for a paid plan"),
-        "referralStep3": m8,
+        "referralStep3": m9,
         "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
             "Referrals are currently paused"),
         "remove": MessageLookupByLibrary.simpleMessage("Remove"),
@@ -349,8 +376,13 @@ class MessageLookup extends MessageLookupByLibrary {
         "removeLink": MessageLookupByLibrary.simpleMessage("Remove link"),
         "removeParticipant":
             MessageLookupByLibrary.simpleMessage("Remove participant"),
+        "removeParticipantBody": m10,
+        "removePublicLink":
+            MessageLookupByLibrary.simpleMessage("Remove public link"),
         "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
             "Some of the items you are removing were added by other people, and you will lose access to them"),
+        "removeWithQuestionMark":
+            MessageLookupByLibrary.simpleMessage("Remove?"),
         "removingFromFavorites":
             MessageLookupByLibrary.simpleMessage("Removing from favorites..."),
         "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"),
@@ -373,16 +405,17 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Set password"),
         "setupComplete": MessageLookupByLibrary.simpleMessage("Setup complete"),
         "shareALink": MessageLookupByLibrary.simpleMessage("Share a link"),
-        "shareMyVerificationID": m9,
-        "shareTextConfirmOthersVerificationID": m10,
+        "shareMyVerificationID": m11,
+        "shareTextConfirmOthersVerificationID": m12,
         "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
-            "Download ente so we can easily share original "),
-        "shareTextReferralCode": m11,
+            "Download ente so we can easily share original quality photos and videos\n\nhttps://ente.io/#download"),
+        "shareTextReferralCode": m13,
         "shareWithNonenteUsers":
             MessageLookupByLibrary.simpleMessage("Share with non-ente users"),
-        "shareWithPeopleSectionTitle": m12,
+        "shareWithPeopleSectionTitle": m14,
         "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
             "Create shared and collaborative albums with other ente users, including users on free plans."),
+        "sharing": MessageLookupByLibrary.simpleMessage("Sharing..."),
         "someoneSharingAlbumsWithYouShouldSeeTheSameId":
             MessageLookupByLibrary.simpleMessage(
                 "Someone sharing albums with you should see the same ID on their device."),
@@ -400,7 +433,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease":
             MessageLookupByLibrary.simpleMessage(
                 "Sorry, we could not generate secure keys on this device.\n\nplease sign up from a different device."),
-        "storageInGB": m13,
+        "storageInGB": m15,
         "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"),
         "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"),
         "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
@@ -416,12 +449,12 @@ class MessageLookup extends MessageLookupByLibrary {
         "termsOfService":
             MessageLookupByLibrary.simpleMessage("terms of service"),
         "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Terms"),
-        "theyAlsoGetXGb": m14,
+        "theyAlsoGetXGb": m16,
         "thisCanBeUsedToRecoverYourAccountIfYou":
             MessageLookupByLibrary.simpleMessage(
                 "This can be used to recover your account if you lose your second factor"),
         "thisDevice": MessageLookupByLibrary.simpleMessage("This device"),
-        "thisIsPersonVerificationId": m15,
+        "thisIsPersonVerificationId": m17,
         "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
             "This is your Verification ID"),
         "thisWillLogYouOutOfTheFollowingDevice":
@@ -430,11 +463,13 @@ class MessageLookup extends MessageLookupByLibrary {
         "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage(
             "This will log you out of this device!"),
         "total": MessageLookupByLibrary.simpleMessage("total"),
+        "trash": MessageLookupByLibrary.simpleMessage("Trash"),
         "tryAgain": MessageLookupByLibrary.simpleMessage("Try again"),
         "twofactorAuthenticationPageTitle":
             MessageLookupByLibrary.simpleMessage("Two-factor authentication"),
         "twofactorSetup":
             MessageLookupByLibrary.simpleMessage("Two-factor setup"),
+        "uncategorized": MessageLookupByLibrary.simpleMessage("Uncategorized"),
         "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage(
             "Usable storage is limited by your current plan. Excess claimed storage will automatically become usable when you upgrade your plan."),
         "useRecoveryKey":
@@ -443,7 +478,7 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Verification ID"),
         "verify": MessageLookupByLibrary.simpleMessage("Verify"),
         "verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"),
-        "verifyEmailID": m16,
+        "verifyEmailID": m18,
         "verifyPassword":
             MessageLookupByLibrary.simpleMessage("Verify password"),
         "verifyingRecoveryKey":
@@ -457,9 +492,12 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("We\'ve sent a mail to"),
         "yesConvertToViewer":
             MessageLookupByLibrary.simpleMessage("Yes, convert to viewer"),
+        "yesRemove": MessageLookupByLibrary.simpleMessage("Yes, remove"),
         "you": MessageLookupByLibrary.simpleMessage("You"),
         "youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage(
             "* You can at max double your storage"),
+        "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage(
+            "You cannot share with yourself"),
         "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
             "Your account has been deleted")
       };

+ 225 - 2
lib/generated/l10n.dart

@@ -2031,10 +2031,10 @@ class S {
     );
   }
 
-  /// `Download ente so we can easily share original `
+  /// `Download ente so we can easily share original quality photos and videos\n\nhttps://ente.io/#download`
   String get shareTextRecommendUsingEnte {
     return Intl.message(
-      'Download ente so we can easily share original ',
+      'Download ente so we can easily share original quality photos and videos\n\nhttps://ente.io/#download',
       name: 'shareTextRecommendUsingEnte',
       desc: '',
       args: [],
@@ -2487,6 +2487,39 @@ class S {
     );
   }
 
+  /// `Also delete the photos (and videos) present in this album from `
+  String get deleteAlbumDialogPart1 {
+    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?\'',
+      args: [],
+    );
+  }
+
   /// `The album will be deleted for everyone\n\nYou will lose access to shared photos in this album that are owned by others`
   String get deleteSharedAlbumDialogBody {
     return Intl.message(
@@ -2496,6 +2529,196 @@ class S {
       args: [],
     );
   }
+
+  /// `Yes, remove`
+  String get yesRemove {
+    return Intl.message(
+      'Yes, remove',
+      name: 'yesRemove',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Creating link...`
+  String get creatingLink {
+    return Intl.message(
+      'Creating link...',
+      name: 'creatingLink',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Remove?`
+  String get removeWithQuestionMark {
+    return Intl.message(
+      'Remove?',
+      name: 'removeWithQuestionMark',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `{userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album`
+  String removeParticipantBody(Object userEmail) {
+    return Intl.message(
+      '$userEmail will be removed from this shared album\n\nAny photos added by them will also be removed from the album',
+      name: 'removeParticipantBody',
+      desc: '',
+      args: [userEmail],
+    );
+  }
+
+  /// `Keep Photos`
+  String get keepPhotos {
+    return Intl.message(
+      'Keep Photos',
+      name: 'keepPhotos',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Delete photos`
+  String get deletePhotos {
+    return Intl.message(
+      'Delete photos',
+      name: 'deletePhotos',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Invite to ente`
+  String get inviteToEnte {
+    return Intl.message(
+      'Invite to ente',
+      name: 'inviteToEnte',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Remove public link`
+  String get removePublicLink {
+    return Intl.message(
+      'Remove public link',
+      name: 'removePublicLink',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `This will remove the public link for accessing "{albumName}".`
+  String disableLinkMessage(Object albumName) {
+    return Intl.message(
+      'This will remove the public link for accessing "$albumName".',
+      name: 'disableLinkMessage',
+      desc: '',
+      args: [albumName],
+    );
+  }
+
+  /// `Sharing...`
+  String get sharing {
+    return Intl.message(
+      'Sharing...',
+      name: 'sharing',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `You cannot share with yourself`
+  String get youCannotShareWithYourself {
+    return Intl.message(
+      'You cannot share with yourself',
+      name: 'youCannotShareWithYourself',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Archive`
+  String get archive {
+    return Intl.message(
+      'Archive',
+      name: 'archive',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Long press to select photos and click + to create an album`
+  String get createAlbumActionHint {
+    return Intl.message(
+      'Long press to select photos and click + to create an album',
+      name: 'createAlbumActionHint',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Importing....`
+  String get importing {
+    return Intl.message(
+      'Importing....',
+      name: 'importing',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Failed to load albums`
+  String get failedToLoadAlbums {
+    return Intl.message(
+      'Failed to load albums',
+      name: 'failedToLoadAlbums',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Hidden`
+  String get hidden {
+    return Intl.message(
+      'Hidden',
+      name: 'hidden',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Please authenticate to view your hidden files`
+  String get authToViewYourHiddenFiles {
+    return Intl.message(
+      'Please authenticate to view your hidden files',
+      name: 'authToViewYourHiddenFiles',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Trash`
+  String get trash {
+    return Intl.message(
+      'Trash',
+      name: 'trash',
+      desc: '',
+      args: [],
+    );
+  }
+
+  /// `Uncategorized`
+  String get uncategorized {
+    return Intl.message(
+      'Uncategorized',
+      name: 'uncategorized',
+      desc: '',
+      args: [],
+    );
+  }
 }
 
 class AppLocalizationDelegate extends LocalizationsDelegate<S> {

+ 33 - 4
lib/l10n/intl_en.arb

@@ -279,7 +279,7 @@
   "shareTextConfirmOthersVerificationID": "Hey, can you confirm that this is your ente.io verification ID: {verificationID}",
   "somethingWentWrong": "Something went wrong",
   "sendInvite": "Send invite",
-  "shareTextRecommendUsingEnte": "Download ente so we can easily share original ",
+  "shareTextRecommendUsingEnte": "Download ente so we can easily share original quality photos and videos\n\nhttps://ente.io/#download",
   "done": "Done",
   "applyCodeTitle": "Apply code",
   "enterCodeDescription": "Enter the code provided by your friend to claim free storage for both of you",
@@ -291,7 +291,6 @@
   "claimed": "Claimed",
   "@claimed": {
     "description": "Used to indicate storage claimed, like 10GB Claimed"
-
   },
   "details": "Details",
   "claimMore": "Claim more!",
@@ -317,7 +316,6 @@
         "type": "int",
         "example": "10"
       }
-
     }
   },
   "faq": "FAQ",
@@ -341,5 +339,36 @@
   "canOnlyRemoveFilesOwnedByYou": "Can only remove files owned by you",
   "deleteSharedAlbum": "Delete shared album?",
   "deleteAlbum": "Delete album",
-  "deleteSharedAlbumDialogBody": "The album will be deleted for everyone\n\nYou will lose access to shared photos in this album that are owned by others"
+  "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?'"
+  },
+  "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...",
+  "removeWithQuestionMark": "Remove?",
+  "removeParticipantBody": "{userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album",
+  "keepPhotos": "Keep Photos",
+  "deletePhotos": "Delete photos",
+  "inviteToEnte": "Invite to ente",
+  "removePublicLink": "Remove public link",
+  "disableLinkMessage": "This will remove the public link for accessing \"{albumName}\".",
+  "sharing": "Sharing...",
+  "youCannotShareWithYourself": "You cannot share with yourself",
+  "archive": "Archive",
+  "createAlbumActionHint": "Long press to select photos and click + to create an album",
+  "importing": "Importing....",
+  "failedToLoadAlbums": "Failed to load albums",
+  "hidden": "Hidden",
+  "authToViewYourHiddenFiles": "Please authenticate to view your hidden files",
+  "trash": "Trash",
+  "uncategorized": "Uncategorized"
 }

+ 52 - 54
lib/ui/actions/collection/collection_sharing_actions.dart

@@ -64,22 +64,23 @@ class CollectionActions {
           shouldStickToDarkTheme: true,
           buttonAction: ButtonAction.first,
           shouldSurfaceExecutionStates: true,
-          labelText: "Yes, remove",
+          labelText: S.of(context).yesRemove,
           onTap: () async {
             await CollectionsService.instance.disableShareUrl(collection);
           },
         ),
-        const ButtonWidget(
+        ButtonWidget(
           buttonType: ButtonType.secondary,
           buttonAction: ButtonAction.cancel,
           isInAlert: true,
           shouldStickToDarkTheme: true,
-          labelText: "Cancel",
+          labelText: S.of(context).cancel,
         )
       ],
-      title: "Remove public link",
+      title: S.of(context).removePublicLink,
       body:
-          'This will remove the public link for accessing "${collection.name}".',
+          //'This will remove the public link for accessing "${collection.name}".',
+          S.of(context).disableLinkMessage(collection.collectionName),
     );
     if (actionResult?.action != null) {
       if (actionResult!.action == ButtonAction.error) {
@@ -95,8 +96,8 @@ class CollectionActions {
     BuildContext context,
     List<File> files,
   ) async {
-    final dialog =
-        createProgressDialog(context, "Creating link...", isDismissible: true);
+    final dialog = createProgressDialog(context, S.of(context).creatingLink,
+        isDismissible: true);
     dialog.show();
     try {
       // create album with emptyName, use collectionCreationTime on UI to
@@ -142,33 +143,31 @@ 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: "Yes, remove",
-          onTap: () async {
-            final newSharees = await CollectionsService.instance
-                .unshare(collection.id, user.email);
-            collection.updateSharees(newSharees);
-          },
-        ),
-        const ButtonWidget(
-          buttonType: ButtonType.secondary,
-          buttonAction: ButtonAction.cancel,
-          isInAlert: true,
-          shouldStickToDarkTheme: true,
-          labelText: "Cancel",
-        )
-      ],
-      title: "Remove?",
-      body: '${user.email} will be removed from this shared album\n\nAny '
-          'photos added by them will also be removed from the album',
-    );
+        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);
@@ -189,19 +188,21 @@ class CollectionActions {
     if (!isValidEmail(email)) {
       await showErrorDialog(
         context,
-        "Invalid email address",
-        "Please enter a valid email address.",
+        S.of(context).invalidEmailAddress,
+        S.of(context).enterValidEmail,
       );
       return false;
     } else if (email.trim() == Configuration.instance.getEmail()) {
-      await showErrorDialog(context, "Oops", "You cannot share with yourself");
+      await showErrorDialog(context, S.of(context).oops,
+          S.of(context).youCannotShareWithYourself);
       return false;
     }
 
     ProgressDialog? dialog;
     String? publicKey;
     if (showProgress) {
-      dialog = createProgressDialog(context, "Sharing...", isDismissible: true);
+      dialog = createProgressDialog(context, S.of(context).sharing,
+          isDismissible: true);
       await dialog.show();
     }
 
@@ -220,21 +221,19 @@ class CollectionActions {
       // is used for error. Do this change along with handling of network errors
       await showDialogWidget(
         context: context,
-        title: "Invite to ente",
+        title: S.of(context).inviteToEnte,
         icon: Icons.info_outline,
-        body: "$email does not have an ente account\n\nSend them an invite to"
-            " add them after they sign up",
+        body: S.of(context).emailNoEnteAccount(email),
         isDismissible: true,
         buttons: [
           ButtonWidget(
             buttonType: ButtonType.neutral,
             icon: Icons.adaptive.share,
-            labelText: "Send invite",
+            labelText: S.of(context).sendInvite,
             isInAlert: true,
             onTap: () async {
               shareText(
-                "Download ente so we can easily share original quality photos"
-                " and videos\n\nhttps://ente.io/#download",
+                S.of(context).shareTextRecommendUsingEnte,
               );
             },
           ),
@@ -282,7 +281,7 @@ class CollectionActions {
       context: bContext,
       buttons: [
         ButtonWidget(
-          labelText: "Keep Photos",
+          labelText: S.of(bContext).keepPhotos,
           buttonType: ButtonType.neutral,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.first,
@@ -302,7 +301,7 @@ class CollectionActions {
           },
         ),
         ButtonWidget(
-          labelText: "Delete photos",
+          labelText: S.of(bContext).deletePhotos,
           buttonType: ButtonType.critical,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.second,
@@ -317,8 +316,8 @@ class CollectionActions {
             }
           },
         ),
-        const ButtonWidget(
-          labelText: "Cancel",
+        ButtonWidget(
+          labelText: S.of(bContext).cancel,
           buttonType: ButtonType.secondary,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.third,
@@ -330,16 +329,15 @@ class CollectionActions {
         text: TextSpan(
           style: textTheme.body.copyWith(color: textMutedDark),
           children: <TextSpan>[
-            const TextSpan(
-              text: 'Also delete the photos (and videos) present in this '
-                  'album from ',
+            TextSpan(
+              text: S.of(bContext).deleteAlbumDialogPart1,
             ),
             TextSpan(
-              text: 'all',
+              text: S.of(bContext).deleteAlbumDialogPart2Bold,
               style: textTheme.body.copyWith(color: textBaseDark),
             ),
-            const TextSpan(
-              text: ' other albums they are part of?',
+            TextSpan(
+              text: S.of(bContext).deleteAlbumDialogPart3,
             ),
           ],
         ),

+ 3 - 2
lib/ui/collections/archived_collections_button_widget.dart

@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/db/files_db.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/models/magic_metadata.dart';
 import "package:photos/services/collections_service.dart";
 import 'package:photos/ui/viewer/gallery/archive_page.dart';
@@ -58,7 +59,7 @@ class ArchivedCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             children: [
                               TextSpan(
-                                text: "Archive",
+                                text: S.of(context).archive,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               const TextSpan(text: "  \u2022  "),
@@ -75,7 +76,7 @@ class ArchivedCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             children: [
                               TextSpan(
-                                text: "Archive",
+                                text: S.of(context).archive,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               //need to query in db and bring this value

+ 1 - 1
lib/ui/collections/collection_item_widget.dart

@@ -61,7 +61,7 @@ class CollectionItem extends StatelessWidget {
             children: [
               const SizedBox(height: 2),
               Text(
-                (c.collection.name ?? "Unnamed").trim(),
+                (c.collection.collectionName).trim(),
                 style: enteTextTheme.small,
                 overflow: TextOverflow.ellipsis,
               ),

+ 2 - 1
lib/ui/collections/create_new_album_widget.dart

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:fluttertoast/fluttertoast.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/events/tab_changed_event.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/utils/toast_util.dart';
 
 class CreateNewAlbumWidget extends StatelessWidget {
@@ -32,7 +33,7 @@ class CreateNewAlbumWidget extends StatelessWidget {
       onTap: () async {
         await showToast(
           context,
-          "Long press to select photos and click + to create an album",
+          S.of(context).createAlbumActionHint,
           toastLength: Toast.LENGTH_LONG,
         );
         Bus.instance

+ 4 - 3
lib/ui/collections/device_folders_grid_view_widget.dart

@@ -7,6 +7,7 @@ import 'package:photos/db/device_files_db.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/events/backup_folders_updated_event.dart';
 import 'package:photos/events/local_photos_updated_event.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/models/device_collection.dart';
 import 'package:photos/services/local_sync_service.dart';
 import 'package:photos/ui/collections/device_folder_icon_widget.dart';
@@ -68,8 +69,8 @@ class _DeviceFoldersGridViewWidgetState
                         padding: const EdgeInsets.all(22),
                         child: (isMigrationDone
                             ? const EmptyState()
-                            : const EmptyState(
-                                text: "Importing....",
+                            : EmptyState(
+                                text: S.of(context).importing,
                               )),
                       )
                     : ListView.builder(
@@ -86,7 +87,7 @@ class _DeviceFoldersGridViewWidgetState
                       );
               } else if (snapshot.hasError) {
                 logger.severe("failed to load device gallery", snapshot.error);
-                return const Text("Failed to load albums");
+                return Text(S.of(context).failedToLoadAlbums);
               } else {
                 return const EnteLoadingWidget();
               }

+ 3 - 2
lib/ui/collections/hidden_collections_button_widget.dart

@@ -1,4 +1,5 @@
 import 'package:flutter/material.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/services/local_authentication_service.dart';
 import 'package:photos/ui/viewer/gallery/hidden_page.dart';
 import 'package:photos/utils/navigation_util.dart';
@@ -45,7 +46,7 @@ class HiddenCollectionsButtonWidget extends StatelessWidget {
                       style: textStyle,
                       children: [
                         TextSpan(
-                          text: "Hidden",
+                          text: S.of(context).hidden,
                           style: Theme.of(context).textTheme.subtitle1,
                         ),
                         const TextSpan(text: "  \u2022  "),
@@ -74,7 +75,7 @@ class HiddenCollectionsButtonWidget extends StatelessWidget {
         final hasAuthenticated = await LocalAuthenticationService.instance
             .requestLocalAuthentication(
           context,
-          "Please authenticate to view your hidden files",
+          S.of(context).authToViewYourHiddenFiles,
         );
         if (hasAuthenticated) {
           routeToPage(

+ 3 - 2
lib/ui/collections/trash_button_widget.dart

@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/db/trash_db.dart';
 import 'package:photos/events/trash_updated_event.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/ui/viewer/gallery/trash_page.dart';
 import 'package:photos/utils/navigation_util.dart';
 
@@ -77,7 +78,7 @@ class _TrashButtonWidgetState extends State<TrashButtonWidget> {
                             style: widget.textStyle,
                             children: [
                               TextSpan(
-                                text: "Trash",
+                                text: S.of(context).trash,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               const TextSpan(text: "  \u2022  "),
@@ -94,7 +95,7 @@ class _TrashButtonWidgetState extends State<TrashButtonWidget> {
                             style: widget.textStyle,
                             children: [
                               TextSpan(
-                                text: "Trash",
+                                text: S.of(context).trash,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               //need to query in db and bring this value

+ 3 - 2
lib/ui/collections/uncat_collections_button_widget.dart

@@ -1,6 +1,7 @@
 import 'package:collection/collection.dart';
 import 'package:flutter/material.dart';
 import 'package:photos/db/files_db.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/models/collection.dart';
 import 'package:photos/services/collections_service.dart';
 import 'package:photos/services/hidden_service.dart';
@@ -62,7 +63,7 @@ class UnCatCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             children: [
                               TextSpan(
-                                text: "Uncategorized",
+                                text: S.of(context).uncategorized,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               const TextSpan(text: "  \u2022  "),
@@ -79,7 +80,7 @@ class UnCatCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             children: [
                               TextSpan(
-                                text: "Uncategorized",
+                                text: S.of(context).uncategorized,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               //need to query in db and bring this value