diff --git a/packages/deriv_localizations/l10n.sh b/packages/deriv_localizations/l10n.sh index 7781220e9..b825291b8 100755 --- a/packages/deriv_localizations/l10n.sh +++ b/packages/deriv_localizations/l10n.sh @@ -2,7 +2,7 @@ # Directories containing ARB files -feature_dirs=( "deriv_auth" "deriv_passkeys" ) +feature_dirs=("deriv_auth" "deriv_passkeys") # Base localization directory base_l10n_dir="lib/l10n" diff --git a/packages/deriv_localizations/lib/l10n/deriv_passkeys/app_en.arb b/packages/deriv_localizations/lib/l10n/deriv_passkeys/app_en.arb index 0bb0779e4..024da7ec6 100644 --- a/packages/deriv_localizations/lib/l10n/deriv_passkeys/app_en.arb +++ b/packages/deriv_localizations/lib/l10n/deriv_passkeys/app_en.arb @@ -13,21 +13,25 @@ "unexpectedError": "An unexpected error occurred!", "unexpectedErrorDescription": "Please try again later.", "ok": "Ok", - "createPassKey": "Create Passkey", "experienceSaferLogins": "Experience safer logins", - "enhanceSecurity": "To enhance your security, tap Create passkey", + "enhanceSecurity": "Enhanced security is just a tap away.", "here": "here", "effortlessLogin": "Effortless login with passkeys", "whatArePasskeys": "What are passkeys?", - "whatArePasskeysDescription": "Passkeys are a security measure that lets you log in the same way you unlock your device: with a fingerprint, a face scan, or a screen lock PIN.", + "whatArePasskeysDescriptionPoint1": "Secure alternative to passwords.", + "whatArePasskeysDescriptionPoint2": "Unlock your account like your phone - with biometrics, face scan or PIN.", "whyPasskeys": "Why passkeys?", - "whyPasskeysDescription": "Passkeys are an added layer of security that protects your account against unauthorised access and phishing attacks.", + "whyPasskeysDescription1": "Extra security layer.", + "whyPasskeysDescription2": "Shields against unauthorised access and phishing.", "howToCreatePasskey": "How to create a passkey?", - "howToCreatePasskeyDescription": "Go to ‘Account Settings’ to set up your passkey. Each device can only save one passkey; however, iOS users may still see the \"Create passkey\" button due to iOS’s ability to save passkeys on other devices.", + "howToCreatePasskeyDescription1": "Go to ‘Account Settings’ on Deriv.", + "howToCreatePasskeyDescription2": "You can create one passkey per device.", "whereArePasskeysSaved": "Where are passkeys saved?", - "whereArePasskeysSavedDescription": "Passkeys are saved in your Google password manager for Android devices and in iCloud keychain on iOS devices to help you sign in on other devices.", + "whereArePasskeysSavedDescriptionAndroid": "Android: Google password manager.", + "whereArePasskeysSavedDescriptionIOS": "iOS: iCloud keychain.", "whatHappensIfEmailChanged": "What happens if my Deriv account email is changed?", - "whatHappensIfEmailChangedDescription": "Even if you change your email address, you can still continue to log in to your Deriv account with the same passkey.", + "whatHappensIfEmailChangedDescription1": "No problem! Your passkey still works.", + "whatHappensIfEmailChangedDescription2": "Sign in to Deriv with your existing passkey.", "tips": "Tips", "beforeUsingPasskeys": "Before using passkeys", "enableScreenLock": "Enable screen lock on your device.", @@ -40,11 +44,16 @@ "learnMoreAboutPasskeys": "Learn more about passkeys", "noNeedToRememberPassword": "No need to remember a password", "useYourBiometrics": "Enhanced security with biometrics or screen lock", - "syncAcrossAllDevices": "Sync across all devices", - "createPasskey": "Create Passkey", + "syncAcrossDevices": "Sync across devices", + "createPasskey": "Create passkey", "unsupportedPlatform": "Unsupported Platform", "storedOn": "Stored on", "lastUsed": "Last used", "rename": "Rename", - "revoke": "Revoke" -} \ No newline at end of file + "revoke": "Revoke", + "continueTradingButtonText": "Continue Trading", + "addMorePasskeysButtonText": "Add More Passkeys", + "unableToSetupPasskey": "Unable to setup passkey", + "unableToSetupPasskeyDescription": "We encountered an issue while setting up your passkey. The process might have been interrupted, or the session timed out. Please try again.", + "passkeysOffErrorTitle": "The Passkeys service is unavailable" +} diff --git a/packages/deriv_localizations/lib/l10n/generated/deriv_auth/deriv_auth_localizations.dart b/packages/deriv_localizations/lib/l10n/generated/deriv_auth/deriv_auth_localizations.dart index 4612318cd..a742191e9 100644 --- a/packages/deriv_localizations/lib/l10n/generated/deriv_auth/deriv_auth_localizations.dart +++ b/packages/deriv_localizations/lib/l10n/generated/deriv_auth/deriv_auth_localizations.dart @@ -75,15 +75,18 @@ import 'deriv_auth_localizations_zh.dart'; /// be consistent with the languages listed in the DerivAuthLocalizations.supportedLocales /// property. abstract class DerivAuthLocalizations { - DerivAuthLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + DerivAuthLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static DerivAuthLocalizations of(BuildContext context) { - return Localizations.of(context, DerivAuthLocalizations)!; + return Localizations.of( + context, DerivAuthLocalizations)!; } - static const LocalizationsDelegate delegate = _DerivAuthLocalizationsDelegate(); + static const LocalizationsDelegate delegate = + _DerivAuthLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. @@ -95,7 +98,8 @@ abstract class DerivAuthLocalizations { /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. - static const List> localizationsDelegates = >[ + static const List> localizationsDelegates = + >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, @@ -652,49 +656,83 @@ abstract class DerivAuthLocalizations { String get labelLanguage; } -class _DerivAuthLocalizationsDelegate extends LocalizationsDelegate { +class _DerivAuthLocalizationsDelegate + extends LocalizationsDelegate { const _DerivAuthLocalizationsDelegate(); @override Future load(Locale locale) { - return SynchronousFuture(lookupDerivAuthLocalizations(locale)); + return SynchronousFuture( + lookupDerivAuthLocalizations(locale)); } @override - bool isSupported(Locale locale) => ['ar', 'bn', 'de', 'en', 'es', 'fr', 'it', 'ko', 'pl', 'pt', 'ru', 'si', 'sw', 'th', 'tr', 'vi', 'zh'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'it', + 'ko', + 'pl', + 'pt', + 'ru', + 'si', + 'sw', + 'th', + 'tr', + 'vi', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_DerivAuthLocalizationsDelegate old) => false; } DerivAuthLocalizations lookupDerivAuthLocalizations(Locale locale) { - - // Lookup logic when only language code is specified. switch (locale.languageCode) { - case 'ar': return DerivAuthLocalizationsAr(); - case 'bn': return DerivAuthLocalizationsBn(); - case 'de': return DerivAuthLocalizationsDe(); - case 'en': return DerivAuthLocalizationsEn(); - case 'es': return DerivAuthLocalizationsEs(); - case 'fr': return DerivAuthLocalizationsFr(); - case 'it': return DerivAuthLocalizationsIt(); - case 'ko': return DerivAuthLocalizationsKo(); - case 'pl': return DerivAuthLocalizationsPl(); - case 'pt': return DerivAuthLocalizationsPt(); - case 'ru': return DerivAuthLocalizationsRu(); - case 'si': return DerivAuthLocalizationsSi(); - case 'sw': return DerivAuthLocalizationsSw(); - case 'th': return DerivAuthLocalizationsTh(); - case 'tr': return DerivAuthLocalizationsTr(); - case 'vi': return DerivAuthLocalizationsVi(); - case 'zh': return DerivAuthLocalizationsZh(); + case 'ar': + return DerivAuthLocalizationsAr(); + case 'bn': + return DerivAuthLocalizationsBn(); + case 'de': + return DerivAuthLocalizationsDe(); + case 'en': + return DerivAuthLocalizationsEn(); + case 'es': + return DerivAuthLocalizationsEs(); + case 'fr': + return DerivAuthLocalizationsFr(); + case 'it': + return DerivAuthLocalizationsIt(); + case 'ko': + return DerivAuthLocalizationsKo(); + case 'pl': + return DerivAuthLocalizationsPl(); + case 'pt': + return DerivAuthLocalizationsPt(); + case 'ru': + return DerivAuthLocalizationsRu(); + case 'si': + return DerivAuthLocalizationsSi(); + case 'sw': + return DerivAuthLocalizationsSw(); + case 'th': + return DerivAuthLocalizationsTh(); + case 'tr': + return DerivAuthLocalizationsTr(); + case 'vi': + return DerivAuthLocalizationsVi(); + case 'zh': + return DerivAuthLocalizationsZh(); } throw FlutterError( - 'DerivAuthLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' - 'an issue with the localizations generation tool. Please file an issue ' - 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.' - ); + 'DerivAuthLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.'); } diff --git a/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations.dart b/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations.dart index b6dd424fb..905611466 100644 --- a/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations.dart +++ b/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations.dart @@ -59,15 +59,18 @@ import 'deriv_passkeys_localizations_en.dart'; /// be consistent with the languages listed in the DerivPasskeysLocalizations.supportedLocales /// property. abstract class DerivPasskeysLocalizations { - DerivPasskeysLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + DerivPasskeysLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static DerivPasskeysLocalizations of(BuildContext context) { - return Localizations.of(context, DerivPasskeysLocalizations)!; + return Localizations.of( + context, DerivPasskeysLocalizations)!; } - static const LocalizationsDelegate delegate = _DerivPasskeysLocalizationsDelegate(); + static const LocalizationsDelegate delegate = + _DerivPasskeysLocalizationsDelegate(); /// A list of this localizations delegate along with the default localizations /// delegates. @@ -79,7 +82,8 @@ abstract class DerivPasskeysLocalizations { /// Additional delegates can be added by appending to this list in /// MaterialApp. This list does not have to be used at all if a custom list /// of delegates is preferred or required. - static const List> localizationsDelegates = >[ + static const List> localizationsDelegates = + >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, @@ -87,9 +91,7 @@ abstract class DerivPasskeysLocalizations { ]; /// A list of this localizations delegate's supported locales. - static const List supportedLocales = [ - Locale('en') - ]; + static const List supportedLocales = [Locale('en')]; /// No description provided for @passkeyCreatedSuccessTitle. /// @@ -127,12 +129,6 @@ abstract class DerivPasskeysLocalizations { /// **'Ok'** String get ok; - /// No description provided for @createPassKey. - /// - /// In en, this message translates to: - /// **'Create Passkey'** - String get createPassKey; - /// No description provided for @experienceSaferLogins. /// /// In en, this message translates to: @@ -142,7 +138,7 @@ abstract class DerivPasskeysLocalizations { /// No description provided for @enhanceSecurity. /// /// In en, this message translates to: - /// **'To enhance your security, tap Create passkey'** + /// **'Enhanced security is just a tap away.'** String get enhanceSecurity; /// No description provided for @here. @@ -163,11 +159,17 @@ abstract class DerivPasskeysLocalizations { /// **'What are passkeys?'** String get whatArePasskeys; - /// No description provided for @whatArePasskeysDescription. + /// No description provided for @whatArePasskeysDescriptionPoint1. /// /// In en, this message translates to: - /// **'Passkeys are a security measure that lets you log in the same way you unlock your device: with a fingerprint, a face scan, or a screen lock PIN.'** - String get whatArePasskeysDescription; + /// **'Secure alternative to passwords.'** + String get whatArePasskeysDescriptionPoint1; + + /// No description provided for @whatArePasskeysDescriptionPoint2. + /// + /// In en, this message translates to: + /// **'Unlock your account like your phone - with biometrics, face scan or PIN.'** + String get whatArePasskeysDescriptionPoint2; /// No description provided for @whyPasskeys. /// @@ -175,11 +177,17 @@ abstract class DerivPasskeysLocalizations { /// **'Why passkeys?'** String get whyPasskeys; - /// No description provided for @whyPasskeysDescription. + /// No description provided for @whyPasskeysDescription1. + /// + /// In en, this message translates to: + /// **'Extra security layer.'** + String get whyPasskeysDescription1; + + /// No description provided for @whyPasskeysDescription2. /// /// In en, this message translates to: - /// **'Passkeys are an added layer of security that protects your account against unauthorised access and phishing attacks.'** - String get whyPasskeysDescription; + /// **'Shields against unauthorised access and phishing.'** + String get whyPasskeysDescription2; /// No description provided for @howToCreatePasskey. /// @@ -187,11 +195,17 @@ abstract class DerivPasskeysLocalizations { /// **'How to create a passkey?'** String get howToCreatePasskey; - /// No description provided for @howToCreatePasskeyDescription. + /// No description provided for @howToCreatePasskeyDescription1. /// /// In en, this message translates to: - /// **'Go to ‘Account Settings’ to set up your passkey. Each device can only save one passkey; however, iOS users may still see the \"Create passkey\" button due to iOS’s ability to save passkeys on other devices.'** - String get howToCreatePasskeyDescription; + /// **'Go to ‘Account Settings’ on Deriv.'** + String get howToCreatePasskeyDescription1; + + /// No description provided for @howToCreatePasskeyDescription2. + /// + /// In en, this message translates to: + /// **'You can create one passkey per device.'** + String get howToCreatePasskeyDescription2; /// No description provided for @whereArePasskeysSaved. /// @@ -199,11 +213,17 @@ abstract class DerivPasskeysLocalizations { /// **'Where are passkeys saved?'** String get whereArePasskeysSaved; - /// No description provided for @whereArePasskeysSavedDescription. + /// No description provided for @whereArePasskeysSavedDescriptionAndroid. /// /// In en, this message translates to: - /// **'Passkeys are saved in your Google password manager for Android devices and in iCloud keychain on iOS devices to help you sign in on other devices.'** - String get whereArePasskeysSavedDescription; + /// **'Android: Google password manager.'** + String get whereArePasskeysSavedDescriptionAndroid; + + /// No description provided for @whereArePasskeysSavedDescriptionIOS. + /// + /// In en, this message translates to: + /// **'iOS: iCloud keychain.'** + String get whereArePasskeysSavedDescriptionIOS; /// No description provided for @whatHappensIfEmailChanged. /// @@ -211,11 +231,17 @@ abstract class DerivPasskeysLocalizations { /// **'What happens if my Deriv account email is changed?'** String get whatHappensIfEmailChanged; - /// No description provided for @whatHappensIfEmailChangedDescription. + /// No description provided for @whatHappensIfEmailChangedDescription1. + /// + /// In en, this message translates to: + /// **'No problem! Your passkey still works.'** + String get whatHappensIfEmailChangedDescription1; + + /// No description provided for @whatHappensIfEmailChangedDescription2. /// /// In en, this message translates to: - /// **'Even if you change your email address, you can still continue to log in to your Deriv account with the same passkey.'** - String get whatHappensIfEmailChangedDescription; + /// **'Sign in to Deriv with your existing passkey.'** + String get whatHappensIfEmailChangedDescription2; /// No description provided for @tips. /// @@ -289,16 +315,16 @@ abstract class DerivPasskeysLocalizations { /// **'Enhanced security with biometrics or screen lock'** String get useYourBiometrics; - /// No description provided for @syncAcrossAllDevices. + /// No description provided for @syncAcrossDevices. /// /// In en, this message translates to: - /// **'Sync across all devices'** - String get syncAcrossAllDevices; + /// **'Sync across devices'** + String get syncAcrossDevices; /// No description provided for @createPasskey. /// /// In en, this message translates to: - /// **'Create Passkey'** + /// **'Create passkey'** String get createPasskey; /// No description provided for @unsupportedPlatform. @@ -330,35 +356,66 @@ abstract class DerivPasskeysLocalizations { /// In en, this message translates to: /// **'Revoke'** String get revoke; + + /// No description provided for @continueTradingButtonText. + /// + /// In en, this message translates to: + /// **'Continue Trading'** + String get continueTradingButtonText; + + /// No description provided for @addMorePasskeysButtonText. + /// + /// In en, this message translates to: + /// **'Add More Passkeys'** + String get addMorePasskeysButtonText; + + /// No description provided for @unableToSetupPasskey. + /// + /// In en, this message translates to: + /// **'Unable to setup passkey'** + String get unableToSetupPasskey; + + /// No description provided for @unableToSetupPasskeyDescription. + /// + /// In en, this message translates to: + /// **'We encountered an issue while setting up your passkey. The process might have been interrupted, or the session timed out. Please try again.'** + String get unableToSetupPasskeyDescription; + + /// No description provided for @passkeysOffErrorTitle. + /// + /// In en, this message translates to: + /// **'The Passkeys service is unavailable'** + String get passkeysOffErrorTitle; } -class _DerivPasskeysLocalizationsDelegate extends LocalizationsDelegate { +class _DerivPasskeysLocalizationsDelegate + extends LocalizationsDelegate { const _DerivPasskeysLocalizationsDelegate(); @override Future load(Locale locale) { - return SynchronousFuture(lookupDerivPasskeysLocalizations(locale)); + return SynchronousFuture( + lookupDerivPasskeysLocalizations(locale)); } @override - bool isSupported(Locale locale) => ['en'].contains(locale.languageCode); + bool isSupported(Locale locale) => + ['en'].contains(locale.languageCode); @override bool shouldReload(_DerivPasskeysLocalizationsDelegate old) => false; } DerivPasskeysLocalizations lookupDerivPasskeysLocalizations(Locale locale) { - - // Lookup logic when only language code is specified. switch (locale.languageCode) { - case 'en': return DerivPasskeysLocalizationsEn(); + case 'en': + return DerivPasskeysLocalizationsEn(); } throw FlutterError( - 'DerivPasskeysLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' - 'an issue with the localizations generation tool. Please file an issue ' - 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.' - ); + 'DerivPasskeysLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.'); } diff --git a/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations_en.dart b/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations_en.dart index f95a09f3a..18a6fc2c4 100644 --- a/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations_en.dart +++ b/packages/deriv_localizations/lib/l10n/generated/deriv_passkeys/deriv_passkeys_localizations_en.dart @@ -24,14 +24,11 @@ class DerivPasskeysLocalizationsEn extends DerivPasskeysLocalizations { @override String get ok => 'Ok'; - @override - String get createPassKey => 'Create Passkey'; - @override String get experienceSaferLogins => 'Experience safer logins'; @override - String get enhanceSecurity => 'To enhance your security, tap Create passkey'; + String get enhanceSecurity => 'Enhanced security is just a tap away.'; @override String get here => 'here'; @@ -43,31 +40,46 @@ class DerivPasskeysLocalizationsEn extends DerivPasskeysLocalizations { String get whatArePasskeys => 'What are passkeys?'; @override - String get whatArePasskeysDescription => 'Passkeys are a security measure that lets you log in the same way you unlock your device: with a fingerprint, a face scan, or a screen lock PIN.'; + String get whatArePasskeysDescriptionPoint1 => 'Secure alternative to passwords.'; + + @override + String get whatArePasskeysDescriptionPoint2 => 'Unlock your account like your phone - with biometrics, face scan or PIN.'; @override String get whyPasskeys => 'Why passkeys?'; @override - String get whyPasskeysDescription => 'Passkeys are an added layer of security that protects your account against unauthorised access and phishing attacks.'; + String get whyPasskeysDescription1 => 'Extra security layer.'; + + @override + String get whyPasskeysDescription2 => 'Shields against unauthorised access and phishing.'; @override String get howToCreatePasskey => 'How to create a passkey?'; @override - String get howToCreatePasskeyDescription => 'Go to ‘Account Settings’ to set up your passkey. Each device can only save one passkey; however, iOS users may still see the \"Create passkey\" button due to iOS’s ability to save passkeys on other devices.'; + String get howToCreatePasskeyDescription1 => 'Go to ‘Account Settings’ on Deriv.'; + + @override + String get howToCreatePasskeyDescription2 => 'You can create one passkey per device.'; @override String get whereArePasskeysSaved => 'Where are passkeys saved?'; @override - String get whereArePasskeysSavedDescription => 'Passkeys are saved in your Google password manager for Android devices and in iCloud keychain on iOS devices to help you sign in on other devices.'; + String get whereArePasskeysSavedDescriptionAndroid => 'Android: Google password manager.'; + + @override + String get whereArePasskeysSavedDescriptionIOS => 'iOS: iCloud keychain.'; @override String get whatHappensIfEmailChanged => 'What happens if my Deriv account email is changed?'; @override - String get whatHappensIfEmailChangedDescription => 'Even if you change your email address, you can still continue to log in to your Deriv account with the same passkey.'; + String get whatHappensIfEmailChangedDescription1 => 'No problem! Your passkey still works.'; + + @override + String get whatHappensIfEmailChangedDescription2 => 'Sign in to Deriv with your existing passkey.'; @override String get tips => 'Tips'; @@ -106,10 +118,10 @@ class DerivPasskeysLocalizationsEn extends DerivPasskeysLocalizations { String get useYourBiometrics => 'Enhanced security with biometrics or screen lock'; @override - String get syncAcrossAllDevices => 'Sync across all devices'; + String get syncAcrossDevices => 'Sync across devices'; @override - String get createPasskey => 'Create Passkey'; + String get createPasskey => 'Create passkey'; @override String get unsupportedPlatform => 'Unsupported Platform'; @@ -125,4 +137,19 @@ class DerivPasskeysLocalizationsEn extends DerivPasskeysLocalizations { @override String get revoke => 'Revoke'; + + @override + String get continueTradingButtonText => 'Continue Trading'; + + @override + String get addMorePasskeysButtonText => 'Add More Passkeys'; + + @override + String get unableToSetupPasskey => 'Unable to setup passkey'; + + @override + String get unableToSetupPasskeyDescription => 'We encountered an issue while setting up your passkey. The process might have been interrupted, or the session timed out. Please try again.'; + + @override + String get passkeysOffErrorTitle => 'The Passkeys service is unavailable'; }