diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 87a635e11..99ea05b63 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -117,33 +117,35 @@ class MessageLookup extends MessageLookupByLibrary { static String m33(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}"; - static String m34(fileType) => - "This ${fileType} will be deleted from your device."; + static String m34(emailIDs) => "Shared with ${emailIDs}"; static String m35(fileType) => + "This ${fileType} will be deleted from your device."; + + static String m36(fileType) => "This ${fileType} is in both ente and your device."; - static String m36(fileType) => "This ${fileType} will be deleted from ente."; + static String m37(fileType) => "This ${fileType} will be deleted from ente."; - static String m37(storageAmountInGB) => "${storageAmountInGB} GB"; + static String m38(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m38(id) => + static String m39(id) => "Your ${id} is already linked to another ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'"; - static String m39(endDate) => + static String m40(endDate) => "Your subscription will be cancelled on ${endDate}"; - static String m40(storageAmountInGB) => + static String m41(storageAmountInGB) => "They also get ${storageAmountInGB} GB"; - static String m41(email) => "This is ${email}\'s Verification ID"; + static String m42(email) => "This is ${email}\'s Verification ID"; - static String m42(email) => "Verify ${email}"; + static String m43(email) => "Verify ${email}"; - static String m43(count) => + static String m44(count) => "${Intl.plural(count, one: '${count} year ago', other: '${count} years ago')}"; - static String m44(storageSaved) => + static String m45(storageSaved) => "You have successfully freed up ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -219,6 +221,8 @@ class MessageLookup extends MessageLookupByLibrary { "Your subscription was cancelled. Would you like to share the reason?"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "What is the main reason you are deleting your account?"), + "askYourLovedOnesToShare": MessageLookupByLibrary.simpleMessage( + "Ask your loved ones to share"), "atAFalloutShelter": MessageLookupByLibrary.simpleMessage("at a fallout shelter"), "authToChangeLockscreenSetting": MessageLookupByLibrary.simpleMessage( @@ -412,6 +416,8 @@ class MessageLookup extends MessageLookupByLibrary { "discord": MessageLookupByLibrary.simpleMessage("Discord"), "doThisLater": MessageLookupByLibrary.simpleMessage("Do this later"), "done": MessageLookupByLibrary.simpleMessage("Done"), + "doubleYourStorage": + MessageLookupByLibrary.simpleMessage("Double your storage"), "downloading": MessageLookupByLibrary.simpleMessage("Downloading..."), "dropSupportEmail": m9, "duplicateFileCountWithStorageSaved": m10, @@ -519,6 +525,7 @@ class MessageLookup extends MessageLookupByLibrary { "invalidKey": MessageLookupByLibrary.simpleMessage("Invalid key"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "The recovery key you entered is not valid. Please make sure it "), + "invite": MessageLookupByLibrary.simpleMessage("Invite"), "inviteToEnte": MessageLookupByLibrary.simpleMessage("Invite to ente"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("Invite your friends"), @@ -677,6 +684,8 @@ class MessageLookup extends MessageLookupByLibrary { "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage("Recreate password"), "reddit": MessageLookupByLibrary.simpleMessage("Reddit"), + "referFriendsAnd2xYourPlan": MessageLookupByLibrary.simpleMessage( + "Refer friends and 2x your plan"), "referralStep1": MessageLookupByLibrary.simpleMessage( "1. Give this code to your friends"), "referralStep2": MessageLookupByLibrary.simpleMessage( @@ -760,6 +769,8 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Setup complete"), "share": MessageLookupByLibrary.simpleMessage("Share"), "shareALink": MessageLookupByLibrary.simpleMessage("Share a link"), + "shareAlbumHint": MessageLookupByLibrary.simpleMessage( + "Open an album and tap the share button on the top right to share."), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Share an album now"), "shareLink": MessageLookupByLibrary.simpleMessage("Share link"), @@ -773,14 +784,19 @@ class MessageLookup extends MessageLookupByLibrary { "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Share with non-ente users"), "shareWithPeopleSectionTitle": m33, + "shareYourFirstAlbum": + MessageLookupByLibrary.simpleMessage("Share your first album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( "Create shared and collaborative albums with other ente users, including users on free plans."), + "sharedByMe": MessageLookupByLibrary.simpleMessage("Shared by me"), + "sharedWith": m34, + "sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"), "sharing": MessageLookupByLibrary.simpleMessage("Sharing..."), - "singleFileDeleteFromDevice": m34, + "singleFileDeleteFromDevice": m35, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "It will be deleted from all albums."), - "singleFileInBothLocalAndRemote": m35, - "singleFileInRemoteOnly": m36, + "singleFileInBothLocalAndRemote": m36, + "singleFileInRemoteOnly": m37, "skip": MessageLookupByLibrary.simpleMessage("Skip"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someoneSharingAlbumsWithYouShouldSeeTheSameId": @@ -802,12 +818,12 @@ class MessageLookup extends MessageLookupByLibrary { "Sorry, we could not generate secure keys on this device.\n\nplease sign up from a different device."), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Success"), "startBackup": MessageLookupByLibrary.simpleMessage("Start backup"), - "storageInGB": m37, + "storageInGB": m38, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Storage limit exceeded"), "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"), - "subAlreadyLinkedErrMessage": m38, - "subWillBeCancelledOn": m39, + "subAlreadyLinkedErrMessage": m39, + "subWillBeCancelledOn": m40, "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Looks like your subscription has expired. Please subscribe to enable sharing."), @@ -835,15 +851,15 @@ class MessageLookup extends MessageLookupByLibrary { "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage( "The download could not be completed"), "theme": MessageLookupByLibrary.simpleMessage("Theme"), - "theyAlsoGetXGb": m40, - "thisAlbumAlreadyHasACollaborativeLink": + "theyAlsoGetXGb": m41, + "thisAlbumAlreadyHDACollaborativeLink": MessageLookupByLibrary.simpleMessage( "This album already has a collaborative link"), "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "This can be used to recover your account if you lose your second factor"), "thisDevice": MessageLookupByLibrary.simpleMessage("This device"), - "thisIsPersonVerificationId": m41, + "thisIsPersonVerificationId": m42, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "This is your Verification ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -889,7 +905,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verification ID"), "verify": MessageLookupByLibrary.simpleMessage("Verify"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"), - "verifyEmailID": m42, + "verifyEmailID": m43, "verifyPassword": MessageLookupByLibrary.simpleMessage("Verify password"), "verifyingRecoveryKey": @@ -909,7 +925,7 @@ class MessageLookup extends MessageLookupByLibrary { "weveSentAMailTo": MessageLookupByLibrary.simpleMessage("We\'ve sent a mail to"), "yearly": MessageLookupByLibrary.simpleMessage("Yearly"), - "yearsAgo": m43, + "yearsAgo": m44, "yes": MessageLookupByLibrary.simpleMessage("Yes"), "yesCancel": MessageLookupByLibrary.simpleMessage("Yes, cancel"), "yesConvertToViewer": @@ -932,7 +948,7 @@ class MessageLookup extends MessageLookupByLibrary { "You cannot downgrade to this plan"), "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage( "You cannot share with yourself"), - "youHaveSuccessfullyFreedUp": m44, + "youHaveSuccessfullyFreedUp": m45, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Your account has been deleted"), "yourPlanWasSuccessfullyDowngraded": diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index 13e5d60fc..9f0e1380e 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -5148,10 +5148,10 @@ class S { } /// `This album already has a collaborative link` - String get thisAlbumAlreadyHasACollaborativeLink { + String get thisAlbumAlreadyHDACollaborativeLink { return Intl.message( 'This album already has a collaborative link', - name: 'thisAlbumAlreadyHasACollaborativeLink', + name: 'thisAlbumAlreadyHDACollaborativeLink', desc: '', args: [], ); @@ -5166,6 +5166,96 @@ class S { args: [albumName], ); } + + /// `Ask your loved ones to share` + String get askYourLovedOnesToShare { + return Intl.message( + 'Ask your loved ones to share', + name: 'askYourLovedOnesToShare', + desc: '', + args: [], + ); + } + + /// `Invite` + String get invite { + return Intl.message( + 'Invite', + name: 'invite', + desc: '', + args: [], + ); + } + + /// `Share your first album` + String get shareYourFirstAlbum { + return Intl.message( + 'Share your first album', + name: 'shareYourFirstAlbum', + desc: '', + args: [], + ); + } + + /// `Shared with {emailIDs}` + String sharedWith(Object emailIDs) { + return Intl.message( + 'Shared with $emailIDs', + name: 'sharedWith', + desc: '', + args: [emailIDs], + ); + } + + /// `Shared with me` + String get sharedWithMe { + return Intl.message( + 'Shared with me', + name: 'sharedWithMe', + desc: '', + args: [], + ); + } + + /// `Shared by me` + String get sharedByMe { + return Intl.message( + 'Shared by me', + name: 'sharedByMe', + desc: '', + args: [], + ); + } + + /// `Double your storage` + String get doubleYourStorage { + return Intl.message( + 'Double your storage', + name: 'doubleYourStorage', + desc: '', + args: [], + ); + } + + /// `Refer friends and 2x your plan` + String get referFriendsAnd2xYourPlan { + return Intl.message( + 'Refer friends and 2x your plan', + name: 'referFriendsAnd2xYourPlan', + desc: '', + args: [], + ); + } + + /// `Open an album and tap the share button on the top right to share.` + String get shareAlbumHint { + return Intl.message( + 'Open an album and tap the share button on the top right to share.', + name: 'shareAlbumHint', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 7c29fa9fa..019a4d5dc 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -731,6 +731,15 @@ "uploadingFilesToAlbum": "Uploading files to album...", "addedSuccessfullyTo": "Added successfully to {albumName}", "movedSuccessfullyTo": "Moved successfully to {albumName}", - "thisAlbumAlreadyHasACollaborativeLink": "This album already has a collaborative link", - "collaborativeLinkCreatedFor": "Collaborative link created for {albumName}" + "thisAlbumAlreadyHDACollaborativeLink": "This album already has a collaborative link", + "collaborativeLinkCreatedFor": "Collaborative link created for {albumName}", + "askYourLovedOnesToShare": "Ask your loved ones to share", + "invite": "Invite", + "shareYourFirstAlbum": "Share your first album", + "sharedWith": "Shared with {emailIDs}", + "sharedWithMe": "Shared with me", + "sharedByMe": "Shared by me", + "doubleYourStorage": "Double your storage", + "referFriendsAnd2xYourPlan": "Refer friends and 2x your plan", + "shareAlbumHint": "Open an album and tap the share button on the top right to share." } diff --git a/lib/ui/collections_list_widget.dart b/lib/ui/collections_list_widget.dart index 8b1932ee2..9c63fc231 100644 --- a/lib/ui/collections_list_widget.dart +++ b/lib/ui/collections_list_widget.dart @@ -259,7 +259,7 @@ class CollectionsListWidget extends StatelessWidget { ); } showShortToast( - context, S.of(context).thisAlbumAlreadyHasACollaborativeLink); + context, S.of(context).thisAlbumAlreadyHDACollaborativeLink); return Future.value(false); } else { try { diff --git a/lib/ui/settings_page.dart b/lib/ui/settings_page.dart index e535ae144..5bbf8361c 100644 --- a/lib/ui/settings_page.dart +++ b/lib/ui/settings_page.dart @@ -6,6 +6,7 @@ import "package:flutter_animate/flutter_animate.dart"; import 'package:photos/core/configuration.dart'; import 'package:photos/core/event_bus.dart'; import 'package:photos/events/opened_settings_event.dart'; +import "package:photos/generated/l10n.dart"; import 'package:photos/services/feature_flag_service.dart'; import "package:photos/services/storage_bonus_service.dart"; import 'package:photos/theme/colors.dart'; @@ -93,8 +94,8 @@ class SettingsPage extends StatelessWidget { child: NotificationWidget( startIcon: Icons.auto_awesome, actionIcon: Icons.arrow_forward_outlined, - text: "Double your storage", - subText: "Refer friends and 2x your plan", + text: S.of(context).doubleYourStorage, + subText: S.of(context).referFriendsAnd2xYourPlan, type: NotificationType.goldenBanner, onTap: () async { StorageBonusService.instance.markStorageBonusAsDone(); diff --git a/lib/ui/shared_collections_gallery.dart b/lib/ui/shared_collections_gallery.dart index 29822410b..cf7ecda96 100644 --- a/lib/ui/shared_collections_gallery.dart +++ b/lib/ui/shared_collections_gallery.dart @@ -11,6 +11,7 @@ import 'package:photos/events/collection_updated_event.dart'; import 'package:photos/events/local_photos_updated_event.dart'; import 'package:photos/events/tab_changed_event.dart'; import 'package:photos/events/user_logged_out_event.dart'; +import "package:photos/generated/l10n.dart"; import 'package:photos/models/collection.dart'; import 'package:photos/models/collection_items.dart'; import 'package:photos/models/gallery_type.dart'; @@ -157,7 +158,7 @@ class _SharedCollectionGalleryState extends State child: Column( children: [ const SizedBox(height: 12), - const SectionTitle(title: "Shared with me"), + SectionTitle(title: S.of(context).sharedWithMe), const SizedBox(height: 12), collections.incoming.isNotEmpty ? Padding( @@ -182,7 +183,7 @@ class _SharedCollectionGalleryState extends State ) : _getIncomingCollectionEmptyState(), const SizedBox(height: 16), - const SectionTitle(title: "Shared by me"), + SectionTitle(title: S.of(context).sharedByMe), const SizedBox(height: 12), collections.outgoing.isNotEmpty ? ListView.builder( @@ -211,7 +212,7 @@ class _SharedCollectionGalleryState extends State mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Ask your loved ones to share", + S.of(context).askYourLovedOnesToShare, style: Theme.of(context).textTheme.caption, ), const Padding(padding: EdgeInsets.only(top: 14)), @@ -220,10 +221,10 @@ class _SharedCollectionGalleryState extends State height: 50, child: GradientButton( onTap: () async { - shareText("Check out https://ente.io"); + shareText(S.of(context).shareTextRecommendUsingEnte); }, iconData: Icons.outgoing_mail, - text: "Invite", + text: S.of(context).invite, ), ), const SizedBox(height: 60), @@ -239,7 +240,7 @@ class _SharedCollectionGalleryState extends State mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "Share your first album", + S.of(context).shareYourFirstAlbum, style: Theme.of(context).textTheme.caption, ), const Padding(padding: EdgeInsets.only(top: 14)), @@ -250,7 +251,7 @@ class _SharedCollectionGalleryState extends State onTap: () async { await showToast( context, - "Open an album and tap the share button on the top right to share.", + S.of(context).shareAlbumHint, toastLength: Toast.LENGTH_LONG, ); Bus.instance.fire( @@ -258,7 +259,7 @@ class _SharedCollectionGalleryState extends State ); }, iconData: Icons.person_add, - text: "Share", + text: S.of(context).share, ), ), const SizedBox(height: 60), @@ -363,7 +364,7 @@ class OutgoingCollectionItem extends StatelessWidget { : Padding( padding: const EdgeInsets.fromLTRB(0, 4, 0, 0), child: Text( - "Shared with " + shareesName.join(", "), + S.of(context).sharedWith(shareesName.join(", ")), style: TextStyle( fontSize: 14, color: Theme.of(context).primaryColorLight,