瀏覽代碼

l10n: extract strings

Neeraj Gupta 2 年之前
父節點
當前提交
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!',
             '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";
       "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.";
       "${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";
       "${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.";
       "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}";
       "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.";
       "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}";
       "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";
       "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')}";
       "${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";
       "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);
   final messages = _notInlinedMessages(_notInlinedMessages);
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@@ -104,8 +110,11 @@ class MessageLookup extends MessageLookupByLibrary {
         "and": MessageLookupByLibrary.simpleMessage("and"),
         "and": MessageLookupByLibrary.simpleMessage("and"),
         "apply": MessageLookupByLibrary.simpleMessage("Apply"),
         "apply": MessageLookupByLibrary.simpleMessage("Apply"),
         "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Apply code"),
         "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Apply code"),
+        "archive": MessageLookupByLibrary.simpleMessage("Archive"),
         "askDeleteReason": MessageLookupByLibrary.simpleMessage(
         "askDeleteReason": MessageLookupByLibrary.simpleMessage(
             "What is the main reason you are deleting your account?"),
             "What is the main reason you are deleting your account?"),
+        "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage(
+            "Please authenticate to view your hidden files"),
         "byClickingLogInIAgreeToThe": MessageLookupByLibrary.simpleMessage(
         "byClickingLogInIAgreeToThe": MessageLookupByLibrary.simpleMessage(
             "By clicking log in, I agree to the"),
             "By clicking log in, I agree to the"),
         "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage(
         "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage(
@@ -158,10 +167,14 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage(
             MessageLookupByLibrary.simpleMessage(
                 "Copy-paste this code\nto your authenticator app"),
                 "Copy-paste this code\nto your authenticator app"),
         "createAccount": MessageLookupByLibrary.simpleMessage("Create account"),
         "createAccount": MessageLookupByLibrary.simpleMessage("Create account"),
+        "createAlbumActionHint": MessageLookupByLibrary.simpleMessage(
+            "Long press to select photos and click + to create an album"),
         "createNewAccount":
         "createNewAccount":
             MessageLookupByLibrary.simpleMessage("Create new account"),
             MessageLookupByLibrary.simpleMessage("Create new account"),
         "createPublicLink":
         "createPublicLink":
             MessageLookupByLibrary.simpleMessage("Create public link"),
             MessageLookupByLibrary.simpleMessage("Create public link"),
+        "creatingLink":
+            MessageLookupByLibrary.simpleMessage("Creating link..."),
         "custom": MessageLookupByLibrary.simpleMessage("Custom"),
         "custom": MessageLookupByLibrary.simpleMessage("Custom"),
         "decrypting": MessageLookupByLibrary.simpleMessage("Decrypting..."),
         "decrypting": MessageLookupByLibrary.simpleMessage("Decrypting..."),
         "deleteAccount": MessageLookupByLibrary.simpleMessage("Delete account"),
         "deleteAccount": MessageLookupByLibrary.simpleMessage("Delete account"),
@@ -170,8 +183,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?"),
         "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."),
+        "deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"),
         "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(
@@ -191,12 +211,13 @@ 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": m2,
         "doThisLater": MessageLookupByLibrary.simpleMessage("Do this later"),
         "doThisLater": MessageLookupByLibrary.simpleMessage("Do this later"),
         "done": MessageLookupByLibrary.simpleMessage("Done"),
         "done": MessageLookupByLibrary.simpleMessage("Done"),
-        "dropSupportEmail": m2,
+        "dropSupportEmail": m3,
         "eligible": MessageLookupByLibrary.simpleMessage("eligible"),
         "eligible": MessageLookupByLibrary.simpleMessage("eligible"),
         "email": MessageLookupByLibrary.simpleMessage("Email"),
         "email": MessageLookupByLibrary.simpleMessage("Email"),
-        "emailNoEnteAccount": m3,
+        "emailNoEnteAccount": m4,
         "encryption": MessageLookupByLibrary.simpleMessage("Encryption"),
         "encryption": MessageLookupByLibrary.simpleMessage("Encryption"),
         "encryptionKeys":
         "encryptionKeys":
             MessageLookupByLibrary.simpleMessage("Encryption keys"),
             MessageLookupByLibrary.simpleMessage("Encryption keys"),
@@ -230,22 +251,26 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Failed to apply code"),
             MessageLookupByLibrary.simpleMessage("Failed to apply code"),
         "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage(
         "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage(
             "Unable to fetch referral details. Please try again later."),
             "Unable to fetch referral details. Please try again later."),
+        "failedToLoadAlbums":
+            MessageLookupByLibrary.simpleMessage("Failed to load albums"),
         "faq": MessageLookupByLibrary.simpleMessage("FAQ"),
         "faq": MessageLookupByLibrary.simpleMessage("FAQ"),
         "feedback": MessageLookupByLibrary.simpleMessage("Feedback"),
         "feedback": MessageLookupByLibrary.simpleMessage("Feedback"),
         "forgotPassword":
         "forgotPassword":
             MessageLookupByLibrary.simpleMessage("Forgot password"),
             MessageLookupByLibrary.simpleMessage("Forgot password"),
         "freeStorageClaimed":
         "freeStorageClaimed":
             MessageLookupByLibrary.simpleMessage("Free storage claimed"),
             MessageLookupByLibrary.simpleMessage("Free storage claimed"),
-        "freeStorageOnReferralSuccess": m4,
+        "freeStorageOnReferralSuccess": m5,
         "freeStorageUsable":
         "freeStorageUsable":
             MessageLookupByLibrary.simpleMessage("Free storage usable"),
             MessageLookupByLibrary.simpleMessage("Free storage usable"),
         "fromYourRegisteredEmailAddress": MessageLookupByLibrary.simpleMessage(
         "fromYourRegisteredEmailAddress": MessageLookupByLibrary.simpleMessage(
             "from your registered email address."),
             "from your registered email address."),
         "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
         "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
             "Generating encryption keys..."),
             "Generating encryption keys..."),
+        "hidden": MessageLookupByLibrary.simpleMessage("Hidden"),
         "howItWorks": MessageLookupByLibrary.simpleMessage("How it works"),
         "howItWorks": MessageLookupByLibrary.simpleMessage("How it works"),
         "howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage(
         "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."),
             "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":
         "incorrectPasswordTitle":
             MessageLookupByLibrary.simpleMessage("Incorrect password"),
             MessageLookupByLibrary.simpleMessage("Incorrect password"),
         "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage(
         "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage(
@@ -259,16 +284,18 @@ class MessageLookup extends MessageLookupByLibrary {
         "invalidKey": MessageLookupByLibrary.simpleMessage("Invalid key"),
         "invalidKey": MessageLookupByLibrary.simpleMessage("Invalid key"),
         "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage(
         "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage(
             "The recovery key you entered is not valid. Please make sure it "),
             "The recovery key you entered is not valid. Please make sure it "),
+        "inviteToEnte": MessageLookupByLibrary.simpleMessage("Invite to ente"),
         "inviteYourFriends":
         "inviteYourFriends":
             MessageLookupByLibrary.simpleMessage("Invite your friends"),
             MessageLookupByLibrary.simpleMessage("Invite your friends"),
         "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage(
         "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage(
             "Selected items will be removed from this album"),
             "Selected items will be removed from this album"),
+        "keepPhotos": MessageLookupByLibrary.simpleMessage("Keep Photos"),
         "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage(
         "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage(
             "Kindly help us with this information"),
             "Kindly help us with this information"),
         "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": m5,
+        "linkExpiresOn": m6,
         "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"),
         "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"),
         "linkHasExpired":
         "linkHasExpired":
             MessageLookupByLibrary.simpleMessage("Link has expired"),
             MessageLookupByLibrary.simpleMessage("Link has expired"),
@@ -279,7 +306,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "manage": MessageLookupByLibrary.simpleMessage("Manage"),
         "manage": MessageLookupByLibrary.simpleMessage("Manage"),
         "manageLink": MessageLookupByLibrary.simpleMessage("Manage link"),
         "manageLink": MessageLookupByLibrary.simpleMessage("Manage link"),
         "manageParticipants": MessageLookupByLibrary.simpleMessage("Manage"),
         "manageParticipants": MessageLookupByLibrary.simpleMessage("Manage"),
-        "maxDeviceLimitSpikeHandling": m6,
+        "maxDeviceLimitSpikeHandling": m7,
         "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderate"),
         "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderate"),
         "never": MessageLookupByLibrary.simpleMessage("Never"),
         "never": MessageLookupByLibrary.simpleMessage("Never"),
         "noPasswordWarningPart1": MessageLookupByLibrary.simpleMessage(
         "noPasswordWarningPart1": MessageLookupByLibrary.simpleMessage(
@@ -300,7 +327,7 @@ 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": m7,
+        "passwordStrength": m8,
         "peopleUsingYourCode":
         "peopleUsingYourCode":
             MessageLookupByLibrary.simpleMessage("People using your code"),
             MessageLookupByLibrary.simpleMessage("People using your code"),
         "pleaseSendAnEmailTo":
         "pleaseSendAnEmailTo":
@@ -340,7 +367,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": m8,
+        "referralStep3": m9,
         "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
         "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
             "Referrals are currently paused"),
             "Referrals are currently paused"),
         "remove": MessageLookupByLibrary.simpleMessage("Remove"),
         "remove": MessageLookupByLibrary.simpleMessage("Remove"),
@@ -349,8 +376,13 @@ 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": m10,
+        "removePublicLink":
+            MessageLookupByLibrary.simpleMessage("Remove public link"),
         "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
         "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
             "Some of the items you are removing were added by other people, and you will lose access to them"),
             "Some of the items you are removing were added by other people, and you will lose access to them"),
+        "removeWithQuestionMark":
+            MessageLookupByLibrary.simpleMessage("Remove?"),
         "removingFromFavorites":
         "removingFromFavorites":
             MessageLookupByLibrary.simpleMessage("Removing from favorites..."),
             MessageLookupByLibrary.simpleMessage("Removing from favorites..."),
         "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"),
         "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"),
@@ -373,16 +405,17 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("Set password"),
             MessageLookupByLibrary.simpleMessage("Set password"),
         "setupComplete": MessageLookupByLibrary.simpleMessage("Setup complete"),
         "setupComplete": MessageLookupByLibrary.simpleMessage("Setup complete"),
         "shareALink": MessageLookupByLibrary.simpleMessage("Share a link"),
         "shareALink": MessageLookupByLibrary.simpleMessage("Share a link"),
-        "shareMyVerificationID": m9,
-        "shareTextConfirmOthersVerificationID": m10,
+        "shareMyVerificationID": m11,
+        "shareTextConfirmOthersVerificationID": m12,
         "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
         "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":
         "shareWithNonenteUsers":
             MessageLookupByLibrary.simpleMessage("Share with non-ente users"),
             MessageLookupByLibrary.simpleMessage("Share with non-ente users"),
-        "shareWithPeopleSectionTitle": m12,
+        "shareWithPeopleSectionTitle": m14,
         "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."),
+        "sharing": MessageLookupByLibrary.simpleMessage("Sharing..."),
         "someoneSharingAlbumsWithYouShouldSeeTheSameId":
         "someoneSharingAlbumsWithYouShouldSeeTheSameId":
             MessageLookupByLibrary.simpleMessage(
             MessageLookupByLibrary.simpleMessage(
                 "Someone sharing albums with you should see the same ID on their device."),
                 "Someone sharing albums with you should see the same ID on their device."),
@@ -400,7 +433,7 @@ class MessageLookup extends MessageLookupByLibrary {
         "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease":
         "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease":
             MessageLookupByLibrary.simpleMessage(
             MessageLookupByLibrary.simpleMessage(
                 "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."),
-        "storageInGB": m13,
+        "storageInGB": m15,
         "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"),
         "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"),
         "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"),
         "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"),
         "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
         "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
@@ -416,12 +449,12 @@ class MessageLookup extends MessageLookupByLibrary {
         "termsOfService":
         "termsOfService":
             MessageLookupByLibrary.simpleMessage("terms of service"),
             MessageLookupByLibrary.simpleMessage("terms of service"),
         "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Terms"),
         "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Terms"),
-        "theyAlsoGetXGb": m14,
+        "theyAlsoGetXGb": m16,
         "thisCanBeUsedToRecoverYourAccountIfYou":
         "thisCanBeUsedToRecoverYourAccountIfYou":
             MessageLookupByLibrary.simpleMessage(
             MessageLookupByLibrary.simpleMessage(
                 "This can be used to recover your account if you lose your second factor"),
                 "This can be used to recover your account if you lose your second factor"),
         "thisDevice": MessageLookupByLibrary.simpleMessage("This device"),
         "thisDevice": MessageLookupByLibrary.simpleMessage("This device"),
-        "thisIsPersonVerificationId": m15,
+        "thisIsPersonVerificationId": m17,
         "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
         "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
             "This is your Verification ID"),
             "This is your Verification ID"),
         "thisWillLogYouOutOfTheFollowingDevice":
         "thisWillLogYouOutOfTheFollowingDevice":
@@ -430,11 +463,13 @@ class MessageLookup extends MessageLookupByLibrary {
         "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage(
         "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage(
             "This will log you out of this device!"),
             "This will log you out of this device!"),
         "total": MessageLookupByLibrary.simpleMessage("total"),
         "total": MessageLookupByLibrary.simpleMessage("total"),
+        "trash": MessageLookupByLibrary.simpleMessage("Trash"),
         "tryAgain": MessageLookupByLibrary.simpleMessage("Try again"),
         "tryAgain": MessageLookupByLibrary.simpleMessage("Try again"),
         "twofactorAuthenticationPageTitle":
         "twofactorAuthenticationPageTitle":
             MessageLookupByLibrary.simpleMessage("Two-factor authentication"),
             MessageLookupByLibrary.simpleMessage("Two-factor authentication"),
         "twofactorSetup":
         "twofactorSetup":
             MessageLookupByLibrary.simpleMessage("Two-factor setup"),
             MessageLookupByLibrary.simpleMessage("Two-factor setup"),
+        "uncategorized": MessageLookupByLibrary.simpleMessage("Uncategorized"),
         "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage(
         "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage(
             "Usable storage is limited by your current plan. Excess claimed storage will automatically become usable when you upgrade your plan."),
             "Usable storage is limited by your current plan. Excess claimed storage will automatically become usable when you upgrade your plan."),
         "useRecoveryKey":
         "useRecoveryKey":
@@ -443,7 +478,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": m16,
+        "verifyEmailID": m18,
         "verifyPassword":
         "verifyPassword":
             MessageLookupByLibrary.simpleMessage("Verify password"),
             MessageLookupByLibrary.simpleMessage("Verify password"),
         "verifyingRecoveryKey":
         "verifyingRecoveryKey":
@@ -457,9 +492,12 @@ class MessageLookup extends MessageLookupByLibrary {
             MessageLookupByLibrary.simpleMessage("We\'ve sent a mail to"),
             MessageLookupByLibrary.simpleMessage("We\'ve sent a mail to"),
         "yesConvertToViewer":
         "yesConvertToViewer":
             MessageLookupByLibrary.simpleMessage("Yes, convert to viewer"),
             MessageLookupByLibrary.simpleMessage("Yes, convert to viewer"),
+        "yesRemove": MessageLookupByLibrary.simpleMessage("Yes, remove"),
         "you": MessageLookupByLibrary.simpleMessage("You"),
         "you": MessageLookupByLibrary.simpleMessage("You"),
         "youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage(
         "youCanAtMaxDoubleYourStorage": MessageLookupByLibrary.simpleMessage(
             "* You can at max double your storage"),
             "* You can at max double your storage"),
+        "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage(
+            "You cannot share with yourself"),
         "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
         "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
             "Your account has been deleted")
             "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 {
   String get shareTextRecommendUsingEnte {
     return Intl.message(
     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',
       name: 'shareTextRecommendUsingEnte',
       desc: '',
       desc: '',
       args: [],
       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`
   /// `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 {
   String get deleteSharedAlbumDialogBody {
     return Intl.message(
     return Intl.message(
@@ -2496,6 +2529,196 @@ class S {
       args: [],
       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> {
 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}",
   "shareTextConfirmOthersVerificationID": "Hey, can you confirm that this is your ente.io verification ID: {verificationID}",
   "somethingWentWrong": "Something went wrong",
   "somethingWentWrong": "Something went wrong",
   "sendInvite": "Send invite",
   "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",
   "done": "Done",
   "applyCodeTitle": "Apply code",
   "applyCodeTitle": "Apply code",
   "enterCodeDescription": "Enter the code provided by your friend to claim free storage for both of you",
   "enterCodeDescription": "Enter the code provided by your friend to claim free storage for both of you",
@@ -291,7 +291,6 @@
   "claimed": "Claimed",
   "claimed": "Claimed",
   "@claimed": {
   "@claimed": {
     "description": "Used to indicate storage claimed, like 10GB Claimed"
     "description": "Used to indicate storage claimed, like 10GB Claimed"
-
   },
   },
   "details": "Details",
   "details": "Details",
   "claimMore": "Claim more!",
   "claimMore": "Claim more!",
@@ -317,7 +316,6 @@
         "type": "int",
         "type": "int",
         "example": "10"
         "example": "10"
       }
       }
-
     }
     }
   },
   },
   "faq": "FAQ",
   "faq": "FAQ",
@@ -341,5 +339,36 @@
   "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",
-  "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,
           shouldStickToDarkTheme: true,
           buttonAction: ButtonAction.first,
           buttonAction: ButtonAction.first,
           shouldSurfaceExecutionStates: true,
           shouldSurfaceExecutionStates: true,
-          labelText: "Yes, remove",
+          labelText: S.of(context).yesRemove,
           onTap: () async {
           onTap: () async {
             await CollectionsService.instance.disableShareUrl(collection);
             await CollectionsService.instance.disableShareUrl(collection);
           },
           },
         ),
         ),
-        const ButtonWidget(
+        ButtonWidget(
           buttonType: ButtonType.secondary,
           buttonType: ButtonType.secondary,
           buttonAction: ButtonAction.cancel,
           buttonAction: ButtonAction.cancel,
           isInAlert: true,
           isInAlert: true,
           shouldStickToDarkTheme: true,
           shouldStickToDarkTheme: true,
-          labelText: "Cancel",
+          labelText: S.of(context).cancel,
         )
         )
       ],
       ],
-      title: "Remove public link",
+      title: S.of(context).removePublicLink,
       body:
       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 != null) {
       if (actionResult!.action == ButtonAction.error) {
       if (actionResult!.action == ButtonAction.error) {
@@ -95,8 +96,8 @@ class CollectionActions {
     BuildContext context,
     BuildContext context,
     List<File> files,
     List<File> files,
   ) async {
   ) async {
-    final dialog =
-        createProgressDialog(context, "Creating link...", 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
@@ -142,33 +143,31 @@ 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: "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 != null) {
       if (actionResult!.action == ButtonAction.error) {
       if (actionResult!.action == ButtonAction.error) {
         showGenericErrorDialog(context: context);
         showGenericErrorDialog(context: context);
@@ -189,19 +188,21 @@ class CollectionActions {
     if (!isValidEmail(email)) {
     if (!isValidEmail(email)) {
       await showErrorDialog(
       await showErrorDialog(
         context,
         context,
-        "Invalid email address",
-        "Please enter a valid email address.",
+        S.of(context).invalidEmailAddress,
+        S.of(context).enterValidEmail,
       );
       );
       return false;
       return false;
     } else if (email.trim() == Configuration.instance.getEmail()) {
     } 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;
       return false;
     }
     }
 
 
     ProgressDialog? dialog;
     ProgressDialog? dialog;
     String? publicKey;
     String? publicKey;
     if (showProgress) {
     if (showProgress) {
-      dialog = createProgressDialog(context, "Sharing...", isDismissible: true);
+      dialog = createProgressDialog(context, S.of(context).sharing,
+          isDismissible: true);
       await dialog.show();
       await dialog.show();
     }
     }
 
 
@@ -220,21 +221,19 @@ class CollectionActions {
       // is used for error. Do this change along with handling of network errors
       // is used for error. Do this change along with handling of network errors
       await showDialogWidget(
       await showDialogWidget(
         context: context,
         context: context,
-        title: "Invite to ente",
+        title: S.of(context).inviteToEnte,
         icon: Icons.info_outline,
         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,
         isDismissible: true,
         buttons: [
         buttons: [
           ButtonWidget(
           ButtonWidget(
             buttonType: ButtonType.neutral,
             buttonType: ButtonType.neutral,
             icon: Icons.adaptive.share,
             icon: Icons.adaptive.share,
-            labelText: "Send invite",
+            labelText: S.of(context).sendInvite,
             isInAlert: true,
             isInAlert: true,
             onTap: () async {
             onTap: () async {
               shareText(
               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,
       context: bContext,
       buttons: [
       buttons: [
         ButtonWidget(
         ButtonWidget(
-          labelText: "Keep Photos",
+          labelText: S.of(bContext).keepPhotos,
           buttonType: ButtonType.neutral,
           buttonType: ButtonType.neutral,
           buttonSize: ButtonSize.large,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.first,
           buttonAction: ButtonAction.first,
@@ -302,7 +301,7 @@ class CollectionActions {
           },
           },
         ),
         ),
         ButtonWidget(
         ButtonWidget(
-          labelText: "Delete photos",
+          labelText: S.of(bContext).deletePhotos,
           buttonType: ButtonType.critical,
           buttonType: ButtonType.critical,
           buttonSize: ButtonSize.large,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.second,
           buttonAction: ButtonAction.second,
@@ -317,8 +316,8 @@ class CollectionActions {
             }
             }
           },
           },
         ),
         ),
-        const ButtonWidget(
-          labelText: "Cancel",
+        ButtonWidget(
+          labelText: S.of(bContext).cancel,
           buttonType: ButtonType.secondary,
           buttonType: ButtonType.secondary,
           buttonSize: ButtonSize.large,
           buttonSize: ButtonSize.large,
           buttonAction: ButtonAction.third,
           buttonAction: ButtonAction.third,
@@ -330,16 +329,15 @@ class CollectionActions {
         text: TextSpan(
         text: TextSpan(
           style: textTheme.body.copyWith(color: textMutedDark),
           style: textTheme.body.copyWith(color: textMutedDark),
           children: <TextSpan>[
           children: <TextSpan>[
-            const TextSpan(
-              text: 'Also delete the photos (and videos) present in this '
-                  'album from ',
+            TextSpan(
+              text: S.of(bContext).deleteAlbumDialogPart1,
             ),
             ),
             TextSpan(
             TextSpan(
-              text: 'all',
+              text: S.of(bContext).deleteAlbumDialogPart2Bold,
               style: textTheme.body.copyWith(color: textBaseDark),
               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:flutter/material.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/files_db.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/models/magic_metadata.dart';
 import 'package:photos/models/magic_metadata.dart';
 import "package:photos/services/collections_service.dart";
 import "package:photos/services/collections_service.dart";
 import 'package:photos/ui/viewer/gallery/archive_page.dart';
 import 'package:photos/ui/viewer/gallery/archive_page.dart';
@@ -58,7 +59,7 @@ class ArchivedCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             style: textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Archive",
+                                text: S.of(context).archive,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               const TextSpan(text: "  \u2022  "),
                               const TextSpan(text: "  \u2022  "),
@@ -75,7 +76,7 @@ class ArchivedCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             style: textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Archive",
+                                text: S.of(context).archive,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               //need to query in db and bring this value
                               //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: [
             children: [
               const SizedBox(height: 2),
               const SizedBox(height: 2),
               Text(
               Text(
-                (c.collection.name ?? "Unnamed").trim(),
+                (c.collection.collectionName).trim(),
                 style: enteTextTheme.small,
                 style: enteTextTheme.small,
                 overflow: TextOverflow.ellipsis,
                 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:fluttertoast/fluttertoast.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/events/tab_changed_event.dart';
 import 'package:photos/events/tab_changed_event.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/utils/toast_util.dart';
 import 'package:photos/utils/toast_util.dart';
 
 
 class CreateNewAlbumWidget extends StatelessWidget {
 class CreateNewAlbumWidget extends StatelessWidget {
@@ -32,7 +33,7 @@ class CreateNewAlbumWidget extends StatelessWidget {
       onTap: () async {
       onTap: () async {
         await showToast(
         await showToast(
           context,
           context,
-          "Long press to select photos and click + to create an album",
+          S.of(context).createAlbumActionHint,
           toastLength: Toast.LENGTH_LONG,
           toastLength: Toast.LENGTH_LONG,
         );
         );
         Bus.instance
         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/db/files_db.dart';
 import 'package:photos/events/backup_folders_updated_event.dart';
 import 'package:photos/events/backup_folders_updated_event.dart';
 import 'package:photos/events/local_photos_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/models/device_collection.dart';
 import 'package:photos/services/local_sync_service.dart';
 import 'package:photos/services/local_sync_service.dart';
 import 'package:photos/ui/collections/device_folder_icon_widget.dart';
 import 'package:photos/ui/collections/device_folder_icon_widget.dart';
@@ -68,8 +69,8 @@ class _DeviceFoldersGridViewWidgetState
                         padding: const EdgeInsets.all(22),
                         padding: const EdgeInsets.all(22),
                         child: (isMigrationDone
                         child: (isMigrationDone
                             ? const EmptyState()
                             ? const EmptyState()
-                            : const EmptyState(
-                                text: "Importing....",
+                            : EmptyState(
+                                text: S.of(context).importing,
                               )),
                               )),
                       )
                       )
                     : ListView.builder(
                     : ListView.builder(
@@ -86,7 +87,7 @@ class _DeviceFoldersGridViewWidgetState
                       );
                       );
               } else if (snapshot.hasError) {
               } else if (snapshot.hasError) {
                 logger.severe("failed to load device gallery", snapshot.error);
                 logger.severe("failed to load device gallery", snapshot.error);
-                return const Text("Failed to load albums");
+                return Text(S.of(context).failedToLoadAlbums);
               } else {
               } else {
                 return const EnteLoadingWidget();
                 return const EnteLoadingWidget();
               }
               }

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

@@ -1,4 +1,5 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/material.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/services/local_authentication_service.dart';
 import 'package:photos/services/local_authentication_service.dart';
 import 'package:photos/ui/viewer/gallery/hidden_page.dart';
 import 'package:photos/ui/viewer/gallery/hidden_page.dart';
 import 'package:photos/utils/navigation_util.dart';
 import 'package:photos/utils/navigation_util.dart';
@@ -45,7 +46,7 @@ class HiddenCollectionsButtonWidget extends StatelessWidget {
                       style: textStyle,
                       style: textStyle,
                       children: [
                       children: [
                         TextSpan(
                         TextSpan(
-                          text: "Hidden",
+                          text: S.of(context).hidden,
                           style: Theme.of(context).textTheme.subtitle1,
                           style: Theme.of(context).textTheme.subtitle1,
                         ),
                         ),
                         const TextSpan(text: "  \u2022  "),
                         const TextSpan(text: "  \u2022  "),
@@ -74,7 +75,7 @@ class HiddenCollectionsButtonWidget extends StatelessWidget {
         final hasAuthenticated = await LocalAuthenticationService.instance
         final hasAuthenticated = await LocalAuthenticationService.instance
             .requestLocalAuthentication(
             .requestLocalAuthentication(
           context,
           context,
-          "Please authenticate to view your hidden files",
+          S.of(context).authToViewYourHiddenFiles,
         );
         );
         if (hasAuthenticated) {
         if (hasAuthenticated) {
           routeToPage(
           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/core/event_bus.dart';
 import 'package:photos/db/trash_db.dart';
 import 'package:photos/db/trash_db.dart';
 import 'package:photos/events/trash_updated_event.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/ui/viewer/gallery/trash_page.dart';
 import 'package:photos/utils/navigation_util.dart';
 import 'package:photos/utils/navigation_util.dart';
 
 
@@ -77,7 +78,7 @@ class _TrashButtonWidgetState extends State<TrashButtonWidget> {
                             style: widget.textStyle,
                             style: widget.textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Trash",
+                                text: S.of(context).trash,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               const TextSpan(text: "  \u2022  "),
                               const TextSpan(text: "  \u2022  "),
@@ -94,7 +95,7 @@ class _TrashButtonWidgetState extends State<TrashButtonWidget> {
                             style: widget.textStyle,
                             style: widget.textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Trash",
+                                text: S.of(context).trash,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               //need to query in db and bring this value
                               //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:collection/collection.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/material.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/files_db.dart';
+import "package:photos/generated/l10n.dart";
 import 'package:photos/models/collection.dart';
 import 'package:photos/models/collection.dart';
 import 'package:photos/services/collections_service.dart';
 import 'package:photos/services/collections_service.dart';
 import 'package:photos/services/hidden_service.dart';
 import 'package:photos/services/hidden_service.dart';
@@ -62,7 +63,7 @@ class UnCatCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             style: textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Uncategorized",
+                                text: S.of(context).uncategorized,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               const TextSpan(text: "  \u2022  "),
                               const TextSpan(text: "  \u2022  "),
@@ -79,7 +80,7 @@ class UnCatCollectionsButtonWidget extends StatelessWidget {
                             style: textStyle,
                             style: textStyle,
                             children: [
                             children: [
                               TextSpan(
                               TextSpan(
-                                text: "Uncategorized",
+                                text: S.of(context).uncategorized,
                                 style: Theme.of(context).textTheme.subtitle1,
                                 style: Theme.of(context).textTheme.subtitle1,
                               ),
                               ),
                               //need to query in db and bring this value
                               //need to query in db and bring this value