From 40fd2429b9bc8a62ec0f54addd2978f9c1b5ae8c Mon Sep 17 00:00:00 2001 From: Peter Havekes Date: Mon, 24 Feb 2025 10:55:07 +0100 Subject: [PATCH 1/4] Use servicedesk strings as on web --- localizations.yaml | 222 ++++++++++++++++++++++++++++----------------- 1 file changed, 137 insertions(+), 85 deletions(-) diff --git a/localizations.yaml b/localizations.yaml index da29417..47ed928 100644 --- a/localizations.yaml +++ b/localizations.yaml @@ -313,11 +313,11 @@ SHARED: COPY: en: >- Some applications you want to login to with eduID require validated information. By deleting this information you will not be able to login to those applications. - + You might be prompted to validate your information again if you want to access them again. nl: >- Voor sommige applicaties waarop je wilt inloggen met eduID zijn gevalideerde gegevens nodig. Als je deze gegevens verwijdert, kan je je niet meer aanmelden bij deze toepassingen. - + Mogelijk wordt je gevraagd om je gegevens opnieuw te valideren als je er inlogt. Button: Cancel: @@ -4084,7 +4084,7 @@ SHARED: - EEA* ID cards - Dutch driver's licenses - Dutch residence permits. - + Please note: copies, public transport cards, and student cards are not valid IDs. nl: | @@ -4093,7 +4093,7 @@ SHARED: - EEA* ID-kaarten - Nederlandse rijbewijzen - Nederlandse verblijfsvergunningen - + Let op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen. Asterisk: COPY: @@ -4103,98 +4103,150 @@ SHARED: COPY: en: Enter your details nl: Naar gegevens invullen - ConfirmIdentityWithIdInput: - Title: - FirstLine: - COPY: - en: Confirm your identity - nl: Bevestig wie je bent - SecondLine: - COPY: - en: with your ID - nl: met je identiteitsbewijs - Explanation: + ServiceDesk: + ConfirmIdentityHeader: COPY: - en: Enter your details as they appear on your ID. Names must be in Roman characters. - nl: Vul je gegevens in zoals die op je identiteitsbewijs staan. - InputField: - LastName: - COPY: - en: Last name - nl: Achternaam - FirstNames: - COPY: - en: First name(s) - nl: Voornamen - DateOfBirth: - COPY: - en: Date of birth - nl: Geboortedatum - GenerateVerificationCodeButton: - COPY: - en: Generate verification code - nl: Genereer controlecode - GenerateError: + en: "You need to manually confirm your identity" + nl: "Bevestig wie je bent met je identiteitsbewijs" + ConfirmIdentity: COPY: - en: Could not generate control code - nl: Genereren van controlecode mislukt - ConfirmIdentityWithIdCode: - Title: + en: You must confirm your identity at one of our eduID Service Desks." + nl: "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks." + StepsHeader: COPY: - en: "Your verification code" - nl: "Je controlecode" - Explanation: + en: "Follow these steps:" + nl: "Volg deze stappen:" + Step1: COPY: - en: "You will also receive an email with this code. The code is valid for 14 days and is intended for: " - nl: "Je krijgt ook een e-mail met deze code. De code is 14 dagen geldig en is bedoeld voor:" - LastName: + en: "Enter your full name as it appears on your ID (first and last name)." + nl: "Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam)." + Step2: COPY: - en: Last name - nl: Achternaam - FirstNames: + en: "Generate a personal verification code." + nl: "Genereer een persoonlijke controlecode." + Step3: COPY: - en: First name(s) - nl: Voornamen - DateOfBirth: + en: Present your code and ID to an eduID Service Desk. They will verify your identity manually." + nl: "Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit." + RedirectWarning: COPY: - en: Date of birth - nl: Geboortedatum - MadeATypo: - Label: - COPY: - en: Made a typo? - nl: Typfout gemaakt? - Link: - COPY: - en: "Edit your details" - nl: "Pas gegevens aan" - WhatsNext: + en: "We will redirect you to another website to enter your name. You won’t be able to log in to %1$s immediately afterward; you will first need to contact a eduID Service Desk." + nl: "We sturen je door naar een andere website om je naam in te vullen. Je kunt daarna nog niet gelijk inloggen bij %1$s, maar je moet eerst contact opnemen met een eduID Service Desk." + AcceptedIds: COPY: - en: "What's next?" - nl: "Wat moet je nu doen?" - ScheduleAnAppointment: + en: "Accepted IDs:" + nl: "Geldige identiteitsbewijzen:" + Passports: COPY: - en: "Schedule an appointment with an eduID Service Desk (online or in person). During your appointment, show your verification code and ID." - nl: "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien." - ShowServiceDesksButton: + en: "Passports" + nl: "paspoorten" + Eea: COPY: - en: "Show eduID Service Desks" - nl: "Bekijk eduID Service Desks" - ServiceDeskUrl: + en: "EEA* ID cards" + nl: "EEA* ID-kaarten" + DriverLicense: COPY: - en: "https://eduid.nl/servicedesk-en" - nl: "https://eduid.nl/servicedesk" - GoToHomePageButton: + en: "Dutch driver's license" + nl: "Nederlandse rijbewijzen" + ResidencePermit: COPY: - en: "Go to homepage" - nl: "Terug naar overzicht" - ProveIdentityOtherWay: + en: "Dutch residence permits" + nl: "Nederlandse verblijfsvergunningen" + Note: COPY: - en: "Want to prove your identity another way? Make sure to delete your verification code first." - nl: "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode." - DeleteVerificationCodeButton: + en: "Please note: copies, public transport passes and student cards are not valid ID's" + nl: "Let op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen." + EeaNote: COPY: - en: "Delete verification code" - nl: "Verwijder controlecode" - - + en: "*EEA: all EU member states plus Liechtenstein, Norway and Iceland" + nl: "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." + Next: + COPY: + en: "Open website to enter your name" + nl: "Naar gegevens invullen" + IdCard: + Information: + COPY: + en: "Enter your details as they appear on your ID. Names must be in Roman characters." + nl: "Vul je gegevens in zoals die op je identiteitsbewijs staan." + LastName: + COPY: + en: "Last name" + nl: "Achternaam" + FirstName: + COPY: + en: "First name(s)" + nl: "Voornamen" + DayOfBirth: + COPY: + en: "Date of birth" + nl: "Geboortedatum" + GenerateControlCode: + COPY: + en: "Generate verification code" + nl: "Genereer controlcode" + ControlCode: + ControlCode: + COPY: + en: "Verification code" + nl: "Controlecode" + YourControlCode: + COPY: + en: "Your verification code" + nl: "Je controlecode" + Info: + COPY: + en: "You will also receive an email with this code. The code is valid for %1$s more days and is intended for:" + nl: "Je krijgt ook een e-mail met deze code. De code is %1$s dagen geldig en is bedoeld voor:" + TypoPrefix: + COPY: + en: "Made a typo? " + nl: "Typfout gemaakt? " + TypoLink: + COPY: + en: "Edit your details" + nl: "Pas gegevens aan" + Todo: + COPY: + en: "What's next?" + nl: "Wat moet je nu doen?" + TodoDetails: + COPY: + en: "Schedule an appointment with an eduID Service Desk (online or in person). During your appointment, show your verification code and ID." + nl: "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien." + ServiceDesks: + COPY: + en: "Show eduID Service Desks" + nl: "Bekijk eduID Service Desks" + ServiceDesksLocations: + COPY: + en: "https://eduID.nl/servicedesk-en" + nl: "https://eduID.nl/servicedesk" + Back: + COPY: + en: "Back to overview" + nl: "Terug naar overzicht" + Rethink: + COPY: + en: "Want to prove your identity another way? Make sure to delete your verification code first." + nl: "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode." + DeleteControlCode: + COPY: + en: "Delete verification code" + nl: "Verwijder controlecode" + DeletedControlCode: + COPY: + en: "Verification code deleted" + nl: "Verificatie-code verwijderd" + Banner: + COPY: + en: "Verify your identity at an eduID Service Desk by presenting your ID and verification code." + nl: "Bevestig je identiteit bij een eduID Service Desk. Dit doe je door je identiteitsbewijs en controlecode te laten zien." + ShowCode: + COPY: + en: "Show code" + nl: "Toon code" + ValidityCode: + COPY: + en: "Your code is valid for %1$s more days." + nl: "Je code is nog geldig voor %1$s dagen." From 08076965dd8aba440340d5dd82761491c7a16f00 Mon Sep 17 00:00:00 2001 From: phavekes Date: Mon, 24 Feb 2025 09:55:33 +0000 Subject: [PATCH 2/4] Automated update of strings.xml after updating localizations.yaml --- app/src/main/res/values-nl/strings.xml | 58 ++++++++++++++++---------- app/src/main/res/values/strings.xml | 58 ++++++++++++++++---------- 2 files changed, 72 insertions(+), 44 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c52412a..7eff7b7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -838,28 +838,42 @@ "Geldige identiteitsbewijzen:\n- paspoorten\n- EEA* ID-kaarten\n- Nederlandse rijbewijzen\n- Nederlandse verblijfsvergunningen\n\nLet op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen.\n" "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." "Naar gegevens invullen" - "Bevestig wie je bent" - "met je identiteitsbewijs" - "Vul je gegevens in zoals die op je identiteitsbewijs staan." - "Achternaam" - "Voornamen" - "Geboortedatum" - "Genereer controlecode" - "Genereren van controlecode mislukt" - "Je controlecode" - "Je krijgt ook een e-mail met deze code. De code is 14 dagen geldig en is bedoeld voor:" - "Achternaam" - "Voornamen" - "Geboortedatum" - "Typfout gemaakt?" - "Pas gegevens aan" - "Wat moet je nu doen?" - "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien." - "Bekijk eduID Service Desks" - "https://eduid.nl/servicedesk" - "Terug naar overzicht" - "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode." - "Verwijder controlecode" + "Bevestig wie je bent met je identiteitsbewijs" + "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks." + "Volg deze stappen:" + "Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam)." + "Genereer een persoonlijke controlecode." + "Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit." + "We sturen je door naar een andere website om je naam in te vullen. Je kunt daarna nog niet gelijk inloggen bij <strong>%1$s</strong>, maar je moet eerst contact opnemen met een eduID Service Desk." + "Geldige identiteitsbewijzen:" + "paspoorten" + "EEA<sup>*</sup> ID-kaarten" + "Nederlandse rijbewijzen" + "Nederlandse verblijfsvergunningen" + "Let op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen." + "<sup>*</sup>EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." + "Naar gegevens invullen" + "Vul je gegevens in zoals die op je identiteitsbewijs staan." + "Achternaam" + "Voornamen" + "Geboortedatum" + "Genereer controlcode" + "Controlecode" + "Je controlecode" + "Je krijgt ook een e-mail met deze code. De code is %1$s dagen geldig en is bedoeld voor:" + "Typfout gemaakt? " + "Pas gegevens aan" + "Wat moet je nu doen?" + "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien." + "Bekijk eduID Service Desks" + "https://eduID.nl/servicedesk" + "Terug naar overzicht" + "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode." + "Verwijder controlecode" + "Verificatie-code verwijderd" + "Bevestig je identiteit bij een eduID Service Desk. Dit doe je door je identiteitsbewijs en controlecode te laten zien." + "Toon code" + "Je code is nog geldig voor %1$s dagen." "OK" "Annuleren" "Nogmaals" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ea3ac47..183bedc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -838,28 +838,42 @@ "Accepted IDs:\n- Passports\n- EEA* ID cards\n- Dutch driver's licenses\n- Dutch residence permits.\n\nPlease note: copies, public transport cards, and student cards are not valid IDs.\n" "*EEA: all EU member states plus Liechtenstein, Norway, and Iceland." "Enter your details" - "Confirm your identity" - "with your ID" - "Enter your details as they appear on your ID. Names must be in Roman characters." - "Last name" - "First name(s)" - "Date of birth" - "Generate verification code" - "Could not generate control code" - "Your verification code" - "You will also receive an email with this code. The code is valid for 14 days and is intended for: " - "Last name" - "First name(s)" - "Date of birth" - "Made a typo?" - "Edit your details" - "What's next?" - "Schedule an appointment with an eduID Service Desk (online or in person). During your appointment, show your verification code and ID." - "Show eduID Service Desks" - "https://eduid.nl/servicedesk-en" - "Go to homepage" - "Want to prove your identity another way? Make sure to delete your verification code first." - "Delete verification code" + "You need to manually confirm your identity" + "You must confirm your identity at one of our eduID Service Desks."" + "Follow these steps:" + "Enter your full name as it appears on your ID (first and last name)." + "Generate a personal verification code." + "Present your code and ID to an eduID Service Desk. They will verify your identity manually."" + "We will redirect you to another website to enter your name. You won’t be able to log in to <strong>%1$s</strong> immediately afterward; you will first need to contact a eduID Service Desk." + "Accepted IDs:" + "Passports" + "EEA<sup>*</sup> ID cards" + "Dutch driver's license" + "Dutch residence permits" + "Please note: copies, public transport passes and student cards are not valid ID's" + "<sup>*</sup>EEA: all EU member states plus Liechtenstein, Norway and Iceland" + "Open website to enter your name" + "Enter your details as they appear on your ID. Names must be in Roman characters." + "Last name" + "First name(s)" + "Date of birth" + "Generate verification code" + "Verification code" + "Your verification code" + "You will also receive an email with this code. The code is valid for %1$s more days and is intended for:" + "Made a typo? " + "Edit your details" + "What's next?" + "Schedule an appointment with an eduID Service Desk (online or in person). During your appointment, show your verification code and ID." + "Show eduID Service Desks" + "https://eduID.nl/servicedesk-en" + "Back to overview" + "Want to prove your identity another way? Make sure to delete your verification code first." + "Delete verification code" + "Verification code deleted" + "Verify your identity at an eduID Service Desk by presenting your ID and verification code." + "Show code" + "Your code is valid for %1$s more days." "OK" "Cancel" "Retry" From fda71827a8621784687a60332bc75e9f35bb48c7 Mon Sep 17 00:00:00 2001 From: Peter Havekes Date: Mon, 24 Feb 2025 11:03:39 +0100 Subject: [PATCH 3/4] Fix yaml --- localizations.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/localizations.yaml b/localizations.yaml index 47ed928..9cef1bb 100644 --- a/localizations.yaml +++ b/localizations.yaml @@ -1,3 +1,4 @@ +# yamllint disable rule:line-length ANDROID: Button: OK: @@ -3722,9 +3723,9 @@ SHARED: en: Could not request SMS code, please retry. nl: Kan geen sms-code aanvragen, probeer het opnieuw. RemoveControlCodeError: - COPY: - en: Could not remove control code, please retry. - nl: Kan de controlecode niet verwijderen, probeer het opnieuw. + COPY: + en: Could not remove control code, please retry. + nl: Kan de controlecode niet verwijderen, probeer het opnieuw. PasswordUpdateError: COPY: en: Cannot update password @@ -4006,8 +4007,8 @@ SHARED: nl: "De volgende informatie is toegevoegd aan jouw eduID account en kan nu worden gedeeld." SubtitlePreferInstitution: COPY: - en: "We also received new information. Do you want to use this for your eduID?" - nl: "We hebben ook nieuwe informatie gekregen. Wil je deze gebruiken voor je eduID?" + en: "We also received new information. Do you want to use this for your eduID?" + nl: "We hebben ook nieuwe informatie gekregen. Wil je deze gebruiken voor je eduID?" Button: Continue: COPY: @@ -4100,9 +4101,9 @@ SHARED: en: "*EEA: all EU member states plus Liechtenstein, Norway, and Iceland." nl: "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." EnterDetailsButton: - COPY: - en: Enter your details - nl: Naar gegevens invullen + COPY: + en: Enter your details + nl: Naar gegevens invullen ServiceDesk: ConfirmIdentityHeader: COPY: From cc2a56788f0c32efff9087df78521e324c7f18f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Zolnai?= Date: Wed, 26 Feb 2025 14:31:03 +0100 Subject: [PATCH 4/4] TIQR-524: Use strings from web --- .../kotlin/nl/eduid/di/model/EduIdModels.kt | 1 + .../code/VerifyWithIdCodeScreen.kt | 33 ++++++----- .../input/VerifyWithIdInputScreen.kt | 16 +++--- .../input/VerifyWithIdInputViewModel.kt | 2 +- .../intro/VerifyWithIdIntroScreen.kt | 28 +++++++--- app/src/main/res/values-nl/strings.xml | 9 +-- app/src/main/res/values/strings.xml | 11 +--- localizations.yaml | 56 ++----------------- 8 files changed, 57 insertions(+), 99 deletions(-) diff --git a/app/src/main/kotlin/nl/eduid/di/model/EduIdModels.kt b/app/src/main/kotlin/nl/eduid/di/model/EduIdModels.kt index bdee5dc..82ce4ce 100644 --- a/app/src/main/kotlin/nl/eduid/di/model/EduIdModels.kt +++ b/app/src/main/kotlin/nl/eduid/di/model/EduIdModels.kt @@ -276,4 +276,5 @@ data class ControlCode( val lastName: String?, val dayOfBirth: String?, val code: String, + val createdAt: Long ) : Parcelable \ No newline at end of file diff --git a/app/src/main/kotlin/nl/eduid/screens/verifywithid/code/VerifyWithIdCodeScreen.kt b/app/src/main/kotlin/nl/eduid/screens/verifywithid/code/VerifyWithIdCodeScreen.kt index 69364cb..eaabcd8 100644 --- a/app/src/main/kotlin/nl/eduid/screens/verifywithid/code/VerifyWithIdCodeScreen.kt +++ b/app/src/main/kotlin/nl/eduid/screens/verifywithid/code/VerifyWithIdCodeScreen.kt @@ -85,6 +85,7 @@ fun VerifyWithIdCodeScreen( firstName = viewModel.controlCode.firstName, lastName = viewModel.controlCode.lastName, dayOfBirth = viewModel.controlCode.dayOfBirth, + createdAt = viewModel.controlCode.createdAt, editVerificationCode = { editCode(viewModel.controlCode) }, @@ -106,6 +107,7 @@ fun VerifyWithIdCodeScreenContent( firstName: String?, lastName: String?, dayOfBirth: String?, + createdAt: Long, editVerificationCode: () -> Unit, deleteVerificationCode: () -> Unit, openShowServiceDesksUrl: (String) -> Unit, @@ -121,7 +123,7 @@ fun VerifyWithIdCodeScreenContent( horizontalAlignment = Alignment.CenterHorizontally ) { Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_Title_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_YourControlCode_COPY), style = MaterialTheme.typography.titleLarge.copy( textAlign = TextAlign.Start, color = MaterialTheme.colorScheme.onSecondary ), @@ -148,8 +150,10 @@ fun VerifyWithIdCodeScreenContent( ) } Spacer(Modifier.height(24.dp)) + val oneDayInMs = 1000 * 60 * 60 * 24 + val validForDays = 14 - (System.currentTimeMillis() - createdAt) / oneDayInMs Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_Explanation_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_Info_COPY, validForDays), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.fillMaxWidth() ) @@ -173,7 +177,7 @@ fun VerifyWithIdCodeScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_LastName_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_LastName_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -193,7 +197,7 @@ fun VerifyWithIdCodeScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_FirstNames_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_FirstName_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -212,7 +216,7 @@ fun VerifyWithIdCodeScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_DateOfBirth_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_DayOfBirth_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -226,8 +230,8 @@ fun VerifyWithIdCodeScreenContent( modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.height(24.dp)) - val label = stringResource(R.string.ConfirmIdentityWithIdCode_MadeATypo_Label_COPY) - val linkedPart = stringResource(R.string.ConfirmIdentityWithIdCode_MadeATypo_Link_COPY) + val label = stringResource(R.string.ServiceDesk_ControlCode_TypoPrefix_COPY) + val linkedPart = stringResource(R.string.ServiceDesk_ControlCode_TypoLink_COPY) val labelAndLink = buildAnnotatedString { append(label) append(" ") @@ -258,22 +262,22 @@ fun VerifyWithIdCodeScreenContent( } Spacer(Modifier.height(32.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_WhatsNext_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_Todo_COPY), style = MaterialTheme.typography.bodyLarge.copy(fontWeight = FontWeight.Bold), modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.height(16.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_ScheduleAnAppointment_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_TodoDetails_COPY), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.height(24.dp)) - val serviceDeskUrl = stringResource(R.string.ConfirmIdentityWithIdCode_ServiceDeskUrl_COPY) + val serviceDeskUrl = stringResource(R.string.ServiceDesk_ControlCode_ServiceDesksLocations_COPY) PrimaryButton( enabled = !isLoading, modifier = Modifier.fillMaxWidth(), - text = stringResource(R.string.ConfirmIdentityWithIdCode_ShowServiceDesksButton_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_ServiceDesks_COPY), onClick = { openShowServiceDesksUrl(serviceDeskUrl) } @@ -282,7 +286,7 @@ fun VerifyWithIdCodeScreenContent( SecondaryButton( enabled = !isLoading, modifier = Modifier.fillMaxWidth(), - text = stringResource(R.string.ConfirmIdentityWithIdCode_GoToHomePageButton_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_Back_COPY), onClick = goToPersonalInfo ) Spacer(Modifier.height(20.dp)) @@ -293,7 +297,7 @@ fun VerifyWithIdCodeScreenContent( ) Spacer(Modifier.height(20.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_ProveIdentityOtherWay_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_Rethink_COPY), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.fillMaxWidth() ) @@ -317,7 +321,7 @@ fun VerifyWithIdCodeScreenContent( .sizeIn(minHeight = 48.dp) ) { Text( - text = stringResource(R.string.ConfirmIdentityWithIdCode_DeleteVerificationCodeButton_COPY), + text = stringResource(R.string.ServiceDesk_ControlCode_DeleteControlCode_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = if (isLoading) ColorScale_Gray_400 else ColorAlertRed, fontWeight = FontWeight.SemiBold @@ -337,6 +341,7 @@ fun VerifyWithIdCodeScreenContent_Preview() { firstName = "First name", lastName = "Last name", dayOfBirth = "1993-12-24", + createdAt = System.currentTimeMillis(), editVerificationCode = {}, deleteVerificationCode = {}, openShowServiceDesksUrl = {}, diff --git a/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputScreen.kt b/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputScreen.kt index bf45f7b..6c1c788 100644 --- a/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputScreen.kt +++ b/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputScreen.kt @@ -100,7 +100,7 @@ fun VerifyWithIdInputScreenContent( horizontalAlignment = Alignment.CenterHorizontally ) { Text( - text = stringResource(R.string.ConfirmIdentityWithIdInput_Title_FirstLine_COPY), + text = stringResource(R.string.ConfirmIdentityWithIdIntro_Title_FirstLine_COPY), style = MaterialTheme.typography.titleLarge.copy( textAlign = TextAlign.Start, color = MaterialTheme.colorScheme.onSecondary ), @@ -109,7 +109,7 @@ fun VerifyWithIdInputScreenContent( .padding(top = 16.dp) ) Text( - text = stringResource(R.string.ConfirmIdentityWithIdInput_Title_SecondLine_COPY), + text = stringResource(R.string.ConfirmIdentityWithIdIntro_Title_SecondLine_COPY), style = MaterialTheme.typography.titleLarge.copy( textAlign = TextAlign.Start ), @@ -130,7 +130,7 @@ fun VerifyWithIdInputScreenContent( Spacer(Modifier.height(32.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdInput_Explanation_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_Information_COPY), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.fillMaxWidth() ) @@ -143,7 +143,7 @@ fun VerifyWithIdInputScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_LastName_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_LastName_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -175,7 +175,7 @@ fun VerifyWithIdInputScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_FirstNames_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_FirstName_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -206,7 +206,7 @@ fun VerifyWithIdInputScreenContent( .fillMaxWidth() .align(Alignment.Start) .padding(vertical = 8.dp), - text = stringResource(R.string.ConfirmIdentityWithIdInput_InputField_DateOfBirth_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_DayOfBirth_COPY), style = MaterialTheme.typography.bodyLarge.copy( color = MaterialTheme.colorScheme.onPrimaryContainer, fontWeight = FontWeight.SemiBold @@ -233,7 +233,7 @@ fun VerifyWithIdInputScreenContent( PrimaryButton( enabled = !isLoading && firstName.isNotEmpty() && lastName.isNotEmpty() && dateOfBirth.isNotEmpty(), modifier = Modifier.fillMaxWidth(), - text = stringResource(R.string.ConfirmIdentityWithIdInput_GenerateVerificationCodeButton_COPY), + text = stringResource(R.string.ServiceDesk_IdCard_GenerateControlCode_COPY), onClick = { val payload = ControlCodeRequest( firstName = firstName, @@ -262,7 +262,7 @@ fun VerifyWithIdInputScreenContent_Preview() { EduidAppAndroidTheme { VerifyWithIdInputScreenContent( isLoading = false, - editCode = ControlCode(firstName = "First name", lastName = "Last name", dayOfBirth = "01-01-2000", code = "123456"), + editCode = ControlCode(firstName = "First name", lastName = "Last name", dayOfBirth = "01-01-2000", code = "123456", createdAt = System.currentTimeMillis()), generateCode = { _ -> }, errorData = null, dismissError = {} diff --git a/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputViewModel.kt b/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputViewModel.kt index 761fb3d..fac6e31 100644 --- a/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputViewModel.kt +++ b/app/src/main/kotlin/nl/eduid/screens/verifywithid/input/VerifyWithIdInputViewModel.kt @@ -41,7 +41,7 @@ class VerifyWithIdInputViewModel @Inject constructor( uiState = uiState.copy(createdControlCode = response) } catch (ex: Exception) { uiState = uiState.copy(isLoading = false, errorData = ErrorData( - titleId = R.string.ConfirmIdentityWithIdInput_GenerateError_COPY, + titleId = R.string.ResponseErrors_GenerateControlCodeError_COPY, message = ex.message ?: "Unknown error" )) } diff --git a/app/src/main/kotlin/nl/eduid/screens/verifywithid/intro/VerifyWithIdIntroScreen.kt b/app/src/main/kotlin/nl/eduid/screens/verifywithid/intro/VerifyWithIdIntroScreen.kt index 27e64fb..1390596 100644 --- a/app/src/main/kotlin/nl/eduid/screens/verifywithid/intro/VerifyWithIdIntroScreen.kt +++ b/app/src/main/kotlin/nl/eduid/screens/verifywithid/intro/VerifyWithIdIntroScreen.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension +import androidx.core.text.parseAsHtml import nl.eduid.R import nl.eduid.ui.EduIdTopAppBar import nl.eduid.ui.PrimaryButton @@ -83,21 +84,21 @@ fun VerifyWithIdIntroScreenContent( ) Spacer(Modifier.height(16.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdIntro_Description_ServiceDesk_COPY), + text = stringResource(R.string.ServiceDesk_ConfirmIdentity_COPY), style = MaterialTheme.typography.bodyLarge, modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.height(16.dp)) Text( - text = stringResource(R.string.ConfirmIdentityWithIdIntro_Description_Steps_Header_COPY), + text = stringResource(R.string.ServiceDesk_StepsHeader_COPY), style = MaterialTheme.typography.bodyLarge.copy(fontWeight = FontWeight.Bold), modifier = Modifier.fillMaxWidth() ) Spacer(Modifier.height(16.dp)) val steps = listOf( - R.string.ConfirmIdentityWithIdIntro_Description_Steps_Step1_COPY, - R.string.ConfirmIdentityWithIdIntro_Description_Steps_Step2_COPY, - R.string.ConfirmIdentityWithIdIntro_Description_Steps_Step3_COPY + R.string.ServiceDesk_Step1_COPY, + R.string.ServiceDesk_Step2_COPY, + R.string.ServiceDesk_Step3_COPY ) steps.forEachIndexed { index, step -> Row { @@ -130,9 +131,19 @@ fun VerifyWithIdIntroScreenContent( start.linkTo(parent.start, margin = 12.dp) } ) + val validDocumentsTextComponents = listOf( + stringResource(R.string.ServiceDesk_AcceptedIds_COPY), + "-" + stringResource(R.string.ServiceDesk_Passports_COPY), + "-" + stringResource(R.string.ServiceDesk_Eea_COPY).parseAsHtml(), + "-" + stringResource(R.string.ServiceDesk_DriverLicense_COPY), + "-" + stringResource(R.string.ServiceDesk_ResidencePermit_COPY), + "", + stringResource(R.string.ServiceDesk_Note_COPY), + "" + ).joinToString(separator = "\n") Text( style = MaterialTheme.typography.bodyLarge, - text = stringResource(R.string.ConfirmIdentityWithIdIntro_ValidDocumentsDisclaimer_List_COPY), + text = validDocumentsTextComponents, modifier = Modifier .constrainAs(topText) { start.linkTo(image.end, margin = 12.dp) @@ -141,9 +152,10 @@ fun VerifyWithIdIntroScreenContent( width = Dimension.fillToConstraints } ) + Text( style = MaterialTheme.typography.bodySmall, - text = stringResource(R.string.ConfirmIdentityWithIdIntro_ValidDocumentsDisclaimer_Asterisk_COPY), + text = stringResource(R.string.ServiceDesk_EeaNote_COPY).parseAsHtml().toString(), modifier = Modifier .constrainAs(bottomText) { start.linkTo(image.end, margin = 12.dp) @@ -157,7 +169,7 @@ fun VerifyWithIdIntroScreenContent( Spacer(Modifier.height(72.dp)) PrimaryButton( modifier = Modifier.fillMaxWidth(), - text = stringResource(R.string.ConfirmIdentityWithIdIntro_EnterDetailsButton_COPY), + text = stringResource(R.string.ServiceDesk_Next_COPY), onClick = goToEnterDetails ) } diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7eff7b7..87bf34b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -787,6 +787,7 @@ "Kan geen eduid-account maken voor e-mail %1$s." "E-maildomein is verboden" "Het e-maildomein gebruikt in %1$s is niet toegestaan." + "Kan geen controlecode genereren" "Autorisatie ongeldig" "Ontvangen verificatie is ongeldig." "Autorisatie mislukt" @@ -830,14 +831,6 @@ "eIDAS" "Bevestig wie je bent" "met je identiteitsbewijs" - "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks." - "Volg deze stappen:" - "Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam)." - "Genereer een persoonlijke controlecode." - "Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit." - "Geldige identiteitsbewijzen:\n- paspoorten\n- EEA* ID-kaarten\n- Nederlandse rijbewijzen\n- Nederlandse verblijfsvergunningen\n\nLet op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen.\n" - "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." - "Naar gegevens invullen" "Bevestig wie je bent met je identiteitsbewijs" "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks." "Volg deze stappen:" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 183bedc..2a50ec9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -787,6 +787,7 @@ "Could not create eduid account for email %1$s." "Email domain is forbidden" "The email domain used in %1$s is not allowed." + "Could not generate control code" "Authorization invalid" "Did not receive valid authentication." "Authorization failed" @@ -830,14 +831,6 @@ "eIDAS" "Confirm your identity" "with your ID" - "You can also confirm your identity at one of our eduID Service Desks." - "Follow these steps:" - "Enter your full name as it appears on your ID (first and last name)." - "Generate a personal verification code." - "Present your code and ID to an eduID Service Desk. They will verify your identity manually." - "Accepted IDs:\n- Passports\n- EEA* ID cards\n- Dutch driver's licenses\n- Dutch residence permits.\n\nPlease note: copies, public transport cards, and student cards are not valid IDs.\n" - "*EEA: all EU member states plus Liechtenstein, Norway, and Iceland." - "Enter your details" "You need to manually confirm your identity" "You must confirm your identity at one of our eduID Service Desks."" "Follow these steps:" @@ -852,7 +845,7 @@ "Dutch residence permits" "Please note: copies, public transport passes and student cards are not valid ID's" "<sup>*</sup>EEA: all EU member states plus Liechtenstein, Norway and Iceland" - "Open website to enter your name" + "Enter your details" "Enter your details as they appear on your ID. Names must be in Roman characters." "Last name" "First name(s)" diff --git a/localizations.yaml b/localizations.yaml index 9cef1bb..62a1f03 100644 --- a/localizations.yaml +++ b/localizations.yaml @@ -3863,6 +3863,10 @@ SHARED: COPY: en: "The email domain used in %1{{s}} is not allowed." nl: "Het e-maildomein gebruikt in %1{{s}} is niet toegestaan." + GenerateControlCodeError: + COPY: + en: Could not generate control code + nl: Kan geen controlecode genereren Auth: Invalid: Title: @@ -4054,56 +4058,6 @@ SHARED: COPY: en: with your ID nl: met je identiteitsbewijs - Description: - ServiceDesk: - COPY: - en: You can also confirm your identity at one of our eduID Service Desks. - nl: Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks. - Steps: - Header: - COPY: - en: "Follow these steps:" - nl: "Volg deze stappen:" - Step1: - COPY: - en: Enter your full name as it appears on your ID (first and last name). - nl: Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam). - Step2: - COPY: - en: Generate a personal verification code. - nl: Genereer een persoonlijke controlecode. - Step3: - COPY: - en: Present your code and ID to an eduID Service Desk. They will verify your identity manually. - nl: Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit. - ValidDocumentsDisclaimer: - List: - COPY: - en: | - Accepted IDs: - - Passports - - EEA* ID cards - - Dutch driver's licenses - - Dutch residence permits. - - Please note: copies, public transport cards, and student cards are not valid IDs. - - nl: | - Geldige identiteitsbewijzen: - - paspoorten - - EEA* ID-kaarten - - Nederlandse rijbewijzen - - Nederlandse verblijfsvergunningen - - Let op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen. - Asterisk: - COPY: - en: "*EEA: all EU member states plus Liechtenstein, Norway, and Iceland." - nl: "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." - EnterDetailsButton: - COPY: - en: Enter your details - nl: Naar gegevens invullen ServiceDesk: ConfirmIdentityHeader: COPY: @@ -4163,7 +4117,7 @@ SHARED: nl: "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland." Next: COPY: - en: "Open website to enter your name" + en: "Enter your details" nl: "Naar gegevens invullen" IdCard: Information: