Skip to content

Commit 99ffb83

Browse files
authored
Merge pull request #1920 from Plant-for-the-Planet-org/feature/update-profile-validation
Updates profile validation
2 parents 90b0803 + af88b6e commit 99ffb83

File tree

14 files changed

+456
-222
lines changed

14 files changed

+456
-222
lines changed

.babelrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"presets": ["next/babel"]
2+
"presets": ["next/babel"],
3+
"plugins": ["@babel/plugin-transform-unicode-regex"]
34
}

package-lock.json

Lines changed: 90 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
"zod": "^3.22.4"
123123
},
124124
"devDependencies": {
125+
"@babel/plugin-transform-unicode-regex": "^7.23.3",
125126
"@emotion/babel-plugin": "^11.9.2",
126127
"@emotion/eslint-plugin": "^11.7.0",
127128
"@hookform/devtools": "^4.3.1",

pages/complete-signup.tsx

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,7 @@ export async function getStaticProps({ locale }: GetStaticPropsContext) {
2222
props: {
2323
...(await serverSideTranslations(
2424
locale || 'en',
25-
[
26-
'bulkCodes',
27-
'common',
28-
'country',
29-
'donate',
30-
'donationLink',
31-
'editProfile',
32-
'giftfunds',
33-
'leaderboard',
34-
'managePayouts',
35-
'manageProjects',
36-
'maps',
37-
'me',
38-
'planet',
39-
'planetcash',
40-
'redeem',
41-
'registerTrees',
42-
'tenants',
43-
'treemapper',
44-
],
25+
['common', 'country', 'editProfile'],
4526
null,
4627
['en', 'de', 'fr', 'es', 'it', 'pt-BR', 'cs']
4728
)),

pages/profile/edit.tsx

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,7 @@ export async function getStaticProps({ locale }: GetStaticPropsContext) {
2525
props: {
2626
...(await serverSideTranslations(
2727
locale || 'en',
28-
[
29-
'bulkCodes',
30-
'common',
31-
'country',
32-
'donate',
33-
'donationLink',
34-
'editProfile',
35-
'giftfunds',
36-
'leaderboard',
37-
'managePayouts',
38-
'manageProjects',
39-
'maps',
40-
'me',
41-
'planet',
42-
'planetcash',
43-
'redeem',
44-
'registerTrees',
45-
'tenants',
46-
'treemapper',
47-
],
28+
['editProfile', 'me', 'common', 'country'],
4829
null,
4930
['en', 'de', 'fr', 'es', 'it', 'pt-BR', 'cs']
5031
)),

public/static/locales/cs/editProfile.json

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,17 @@
22
"loginTitle": "{{log}} - Přihlášení",
33
"signUpText": "Dokončení registrace",
44
"profileTypes": "{{item.title}}",
5-
"profileName": "Název {{type}}",
65
"createAccount": "Vytvořit účet",
76
"individual": "Osoba",
8-
"iamA": "Já jsem",
97
"tpo": "Organizace pro obnovu lesů",
108
"education": "Škola",
119
"organization": "Společnost",
1210
"profileCreated": "Profil úspěšně vytvořen!",
1311
"profileCreationFailed": "Chyba při vytváření profilu. Zkuste to prosím znovu.",
1412
"profileCreationError": "Chyba při vytváření profilu.",
1513
"edit": "Editovat profil",
16-
"privateAccount": "Soukromý účet",
1714
"privateAccountTxt": "Váš profil je skrytý a v žebříčku se zobrazuje pouze vaše křestní jméno",
18-
"subscribe": "Přihlášení k odběru novinek e-mailem",
19-
"profileDescription": "Popis profilu",
20-
"descriptionRequired": "Překročili jste maximální délku",
21-
"website": "Webstránka",
22-
"websiteError": "Neplatná URL adresa webové stránky",
23-
"websiteRequired": "Zadejte prosím platnou adresu URL",
2415
"save": "Uložit",
25-
"nameValidation": "Zadejte prosím jméno",
2616
"profilePicUpdated": "Profilový obrázek se aktualizuje...",
2717
"profileSaved": "Úspěšně uloženo!",
2818
"profileSaveFailed": "Chyba při aktualizaci profilu.",
@@ -32,5 +22,32 @@
3222
"continue": "Pokračovat",
3323
"cancel": "Zrušit",
3424
"termAndCondition": "Souhlasím s <0>podmínkami</0> platformy Plant-for-the-Planet.",
35-
"termAndConditionError": "Přijměte prosím Smluvní podmínky"
36-
}
25+
"termAndConditionError": "Přijměte prosím Smluvní podmínky",
26+
"fieldLabels": {
27+
"profileType": "Já jsem",
28+
"firstName": "Jméno",
29+
"lastName": "Příjmení",
30+
"email": "Email",
31+
"address": "Adresa",
32+
"city": "Město",
33+
"zipCode": "PSČ",
34+
"name": "Název {{type}}",
35+
"country": "Země",
36+
"bio": "Popis profilu",
37+
"website": "Webstránka",
38+
"privateAccount": "Soukromý účet",
39+
"subscribe": "Přihlášení k odběru novinek e-mailem"
40+
},
41+
"validationErrors": {
42+
"firstNameRequired": "Jméno je povinné",
43+
"lastNameRequired": "Příjmení je povinné",
44+
"emailRequired": "Email je povinný",
45+
"nameRequired": "Zadejte prosím jméno",
46+
"addressRequired": "Adresa je povinná",
47+
"cityRequired": "Město je povinno",
48+
"zipCodeInvalid": "PSČ je neplatné",
49+
"websiteInvalid": "Zadejte prosím platnou adresu URL",
50+
"countryRequired": "Země je povinná",
51+
"companyRequired": "Název společnosti je povinný"
52+
}
53+
}

public/static/locales/de/editProfile.json

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,17 @@
22
"loginTitle": "{{log}} - Anmeldung",
33
"signUpText": "Registrierung vervollständigen",
44
"profileTypes": "{{item.title}}",
5-
"profileName": "Name der {{type}}",
65
"createAccount": "Konto erstellen",
76
"individual": "Person",
8-
"iamA": "Ich bin ein",
97
"tpo": "Wiederaufforstung-Organisation",
108
"education": "Schule",
119
"organization": "Firma",
1210
"profileCreated": "Profil erfolgreich erstellt!",
1311
"profileCreationFailed": "Fehler bei der Profilerstellung. Bitte versuchen Sie es erneut.",
1412
"profileCreationError": "Fehler bei der Profilerstellung.",
1513
"edit": "Profil bearbeiten",
16-
"privateAccount": "Privatkonto",
1714
"privateAccountTxt": "Dein Profil wird ausgeblendet und nur Dein Vorname erscheint in der Bestenliste",
18-
"subscribe": "Nachrichten per E-Mail abonnieren",
19-
"profileDescription": "Profilbeschreibung",
20-
"descriptionRequired": "Du hast die maximale Länge überschritten",
21-
"website": "Website",
22-
"websiteError": "Ungültige Website-URL",
23-
"websiteRequired": "Bitte gib eine gültige Website-URL ein",
2415
"save": "Speichern",
25-
"nameValidation": "Bitte gib einen Namen ein",
2616
"profilePicUpdated": "Profilbild wird aktualisiert...",
2717
"profileSaved": "Erfolgreich gespeichert!",
2818
"profileSaveFailed": "Fehler beim Aktualisieren des Profils.",
@@ -32,5 +22,32 @@
3222
"continue": "Weiter",
3323
"cancel": "Abbrechen",
3424
"termAndCondition": "Ich stimme den <0>Nutzungsbedingungen</0> der Plant-for-the-Planet Plattform zu.",
35-
"termAndConditionError": "Bitte stimme den Nutzungsbedingungen zu"
36-
}
25+
"termAndConditionError": "Bitte stimme den Nutzungsbedingungen zu",
26+
"fieldLabels": {
27+
"profileType": "Ich bin ein",
28+
"firstName": "Vorname",
29+
"lastName": "Nachname",
30+
"name": "Name der {{type}}",
31+
"email": "E-Mail",
32+
"address": "Adresse",
33+
"city": "Stadt",
34+
"zipCode": "PLZ",
35+
"country": "Land",
36+
"bio": "Profilbeschreibung",
37+
"website": "Website",
38+
"privateAccount": "Privatkonto",
39+
"subscribe": "Nachrichten per E-Mail abonnieren"
40+
},
41+
"validationErrors": {
42+
"firstNameRequired": "Vorname ist erforderlich",
43+
"lastNameRequired": "Nachname ist erforderlich",
44+
"emailRequired": "E-Mail ist erforderlich",
45+
"nameRequired": "Bitte gib einen Namen ein",
46+
"addressRequired": "Adresse ist erforderlich",
47+
"cityRequired": "Stadt ist erforderlich",
48+
"zipCodeInvalid": "PLZ ist ungültig",
49+
"websiteInvalid": "Bitte gib eine gültige Website-URL ein",
50+
"countryRequired": "Land ist erforderlich",
51+
"companyRequired": "Firmenname ist erforderlich"
52+
}
53+
}

public/static/locales/en/editProfile.json

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,17 @@
22
"loginTitle": "{{log}} - Login",
33
"signUpText": "Complete Signup",
44
"profileTypes": "{{item.title}}",
5-
"profileName": "Name of {{type}}",
65
"createAccount": "Create Account",
76
"individual": "Person",
8-
"iamA": "I am a",
97
"tpo": "Restoration Organization",
108
"education": "School",
119
"organization": "Company",
1210
"profileCreated": "Profile Successfully created!",
1311
"profileCreationFailed": "Error in creating profile. Please try again.",
1412
"profileCreationError": "Error in creating profile.",
1513
"edit": "Edit Profile",
16-
"privateAccount": "Private Account",
1714
"privateAccountTxt": "Your profile is hidden and only your first name appears in the leaderboard",
18-
"subscribe": "Subscribe to news via email",
19-
"profileDescription": "Profile Desciption",
20-
"descriptionRequired": "You have exceeded the maximum length",
21-
"website": "Website",
22-
"websiteError": "Invalid website URL",
23-
"websiteRequired": "Please enter valid Website URL",
2415
"save": "Save",
25-
"nameValidation": "Please enter a name",
2616
"profilePicUpdated": "Profile picture is being updated...",
2717
"profileSaved": "Saved successfully!",
2818
"profileSaveFailed": "Error in updating profile.",
@@ -32,5 +22,39 @@
3222
"continue": "Continue",
3323
"cancel": "Cancel",
3424
"termAndCondition": "I agree to the <0>Terms and Conditions</0> of the Plant-for-the-Planet platform.",
35-
"termAndConditionError": "Please Accept the Terms and Conditions"
36-
}
25+
"termAndConditionError": "Please Accept the Terms and Conditions",
26+
"fieldLabels": {
27+
"profileType": "I am a",
28+
"firstName": "First Name",
29+
"lastName": "Last Name",
30+
"name": "Name of {{type}}",
31+
"email": "Email",
32+
"address": "Address",
33+
"city": "City",
34+
"zipCode": "Postal/Zip Code",
35+
"country": "Country",
36+
"bio": "Profile Description",
37+
"website": "Website",
38+
"privateAccount": "Private Account",
39+
"subscribe": "Subscribe to news via email"
40+
},
41+
"validationErrors": {
42+
"maxChars": "Should be {{max}} characters or less",
43+
"firstNameRequired": "First Name field is required",
44+
"firstNameInvalid": "First name is invalid. It cannot start with a special character, and only these special characters are allowed: space ' . -",
45+
"lastNameRequired": "Last Name field is required",
46+
"lastNameInvalid": "Last name is invalid. It cannot start with a special character, and only these special characters are allowed: space ' -",
47+
"emailRequired": "Email is required",
48+
"nameRequired": "Please enter a name",
49+
"nameInvalid": "Name is invalid. Only these special characters are allowed: space . , ' & ( ) ! -",
50+
"addressRequired": "Address is required",
51+
"addressInvalid": "Address is invalid. Only these special characters are allowed: space . , # - /",
52+
"cityRequired": "City is required",
53+
"cityInvalid": "City is invalid. Only letters and these special characters are allowed: space . , ( ) -",
54+
"zipCodeRequired": "Zip Code is required",
55+
"zipCodeInvalid": "Zip Code is invalid",
56+
"websiteInvalid": "Please enter valid Website URL",
57+
"countryRequired": "Country is required",
58+
"companyRequired": "Company Name is required"
59+
}
60+
}

public/static/locales/es/editProfile.json

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,52 @@
22
"loginTitle": "{{log}} - Ingresa en",
33
"signUpText": "Inscripción completa",
44
"profileTypes": "{{item.title}}",
5-
"profileName": "Nombre de {{type}}",
65
"createAccount": "Crear una cuenta",
76
"individual": "Individuo",
8-
"iamA": "Soy un",
97
"tpo": "Organización de plantación",
108
"education": "Escuela",
119
"organization": "Empresa",
1210
"profileCreated": "Perfil Creado con éxito!",
1311
"profileCreationFailed": "Error en la creación del perfil. Por favor, inténtalo de nuevo.",
1412
"profileCreationError": "Error en la creación del perfil.",
1513
"edit": "Editar el perfil",
16-
"privateAccount": "Cuenta privada",
1714
"privateAccountTxt": "Tu perfil está oculto y sólo tu nombre aparece en la tabla de clasificación",
18-
"subscribe": "Suscríbete a las noticias por correo electrónico",
19-
"profileDescription": "Descripción del perfil",
2015
"descriptionRequired": "Por favor, introduce una descripción válida",
21-
"website": "Página web",
2216
"websiteError": "URL inválido",
23-
"websiteRequired": "Por favor, introduzca una URL válida",
2417
"save": "Guardar",
25-
"nameValidation": "Por favor, introduce un nombre",
2618
"profilePicUpdated": "La foto del perfil está siendo actualizada...",
2719
"profileSaved": "¡Guardado con éxito!",
2820
"profileSaveFailed": "Error en la actualización del perfil.",
2921
"changeAccountToPublic": "Cambiar a una cuenta pública",
3022
"publicAccount": "Cuenta pública",
3123
"accountPrivacyChangeText": "Para crear un widget de perfil necesitas tener una cuenta pública. Al hacer clic en continuar, cambias tu configuración de privacidad a pública.",
3224
"continue": "Continúa",
33-
"cancel": "Cancelar"
34-
}
25+
"cancel": "Cancelar",
26+
"fieldLabels": {
27+
"profileType": "Soy un",
28+
"firstName": "Nombre",
29+
"lastName": "Apellidos",
30+
"name": "Nombre de {{type}}",
31+
"email": "Correo electrónico",
32+
"address": "Dirección",
33+
"city": "Ciudad",
34+
"zipCode": "Código postal",
35+
"country": "País",
36+
"bio": "Descripción del perfil",
37+
"website": "Página web",
38+
"privateAccount": "Cuenta privada",
39+
"subscribe": "Suscríbete a las noticias por correo electrónico"
40+
},
41+
"validationErrors": {
42+
"firstNameRequired": "El campo del nombre es obligatorio",
43+
"lastNameRequired": "El campo de los apellidos es obligatorio",
44+
"emailRequired": "El correo electrónico es necesario",
45+
"nameRequired": "Por favor, introduce un nombre",
46+
"addressRequired": "La dirección es obligatoria",
47+
"cityRequired": "La ciudad es obligatoria",
48+
"zipCodeInvalid": "El código postal sólo debe contener letras y números",
49+
"websiteInvalid": "Por favor, introduzca una URL válida",
50+
"countryRequired": "El país es obligatorio",
51+
"companyRequired": "El nombre de la empresa es obligatorio"
52+
}
53+
}

public/static/locales/fr/editProfile.json

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,51 @@
22
"loginTitle": "{{log}} - Connexion",
33
"signUpText": "Inscription complète",
44
"profileTypes": "{{item.title}}",
5-
"profileName": "Nom de {{type}}",
65
"createAccount": "Créer un compte",
76
"individual": "Individu",
8-
"iamA": "Je suis un",
97
"tpo": "Organisation de reboisement",
108
"education": "École",
119
"organization": "Société",
1210
"profileCreated": "Profil Créé avec succès !",
1311
"profileCreationFailed": "Erreur dans la création du profil. Veuillez réessayer.",
1412
"profileCreationError": "Erreur dans la création du profil.",
1513
"edit": "Modifier le profil",
16-
"privateAccount": "Compte privé",
1714
"privateAccountTxt": "Votre profil est caché et seul votre prénom apparaît dans le classement",
18-
"subscribe": "S'abonner aux actualités par email",
19-
"profileDescription": "Descriptif du profil",
20-
"descriptionRequired": "Vous avez dépassé la longueur maximale",
21-
"website": "Site web",
22-
"websiteError": "URL du site web invalide",
23-
"websiteRequired": "Veuillez entrer une URL de site web valide",
2415
"save": "Sauvegarder",
25-
"nameValidation": "Saisir un nom",
2616
"profilePicUpdated": "La photo du profil est en cours d'actualisation...",
2717
"profileSaved": "Sauvé avec succès !",
2818
"profileSaveFailed": "Erreur dans la mise à jour du profil.",
2919
"changeAccountToPublic": "Passer à un compte public",
3020
"publicAccount": "Compte public",
3121
"accountPrivacyChangeText": "Pour créer un widget de profil, vous devez avoir un compte public. En cliquant sur Continuer, vous changez vos paramètres de confidentialité en public.",
3222
"continue": "Continuer",
33-
"cancel": "Annuler"
34-
}
23+
"cancel": "Annuler",
24+
"fieldLabels": {
25+
"profileType": "Je suis un",
26+
"firstName": "Prénom",
27+
"lastName": "Nom de famille",
28+
"name": "Nom de {{type}}",
29+
"email": "Email",
30+
"address": "Adresse",
31+
"city": "Ville",
32+
"zipCode": "Code postal/Zip",
33+
"country": "Pays",
34+
"bio": "Descriptif du profil",
35+
"website": "Site web",
36+
"privateAccount": "Compte privé",
37+
"subscribe": "S'abonner aux actualités par email"
38+
},
39+
"validationErrors": {
40+
"firstNameRequired": "Le champ Prénom est requis",
41+
"lastNameRequired": "Le champ \"Nom\" est requis",
42+
"emailRequired": "L'adresse électronique est requis",
43+
"nameRequired": "Saisir un nom",
44+
"nameInvalid": "Name is invalid. Only these special characters are allowed: space . , ' & ( ) ! -",
45+
"addressRequired": "L'adresse est requis",
46+
"cityRequired": "La ville est requis",
47+
"zipCodeInvalid": "Le code postal n'est pas valide",
48+
"websiteInvalid": "Veuillez entrer une URL de site web valide",
49+
"countryRequired": "Le pays est requis",
50+
"companyRequired": "Le nom de la société est obligatoire"
51+
}
52+
}

0 commit comments

Comments
 (0)