From d70e33c1d2d0ca4abb1e8bec8f75f2d7a0d870da Mon Sep 17 00:00:00 2001
From: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com>
Date: Sat, 20 Feb 2021 05:02:44 +0000
Subject: [PATCH] feat(i18n): url validation translations (#41190)
---
client/i18n/locales/chinese/translations.json | 5 ++++-
client/i18n/locales/english/translations.json | 5 ++++-
client/i18n/locales/espanol/translations.json | 5 ++++-
client/src/components/formHelpers/FormValidators.js | 13 ++++++++-----
4 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json
index cffb6d3f77..61f71629a4 100644
--- a/client/i18n/locales/chinese/translations.json
+++ b/client/i18n/locales/chinese/translations.json
@@ -474,7 +474,10 @@
"invalid-url": "我们无法验证你的 URL,请确保填写正确",
"invalid-protocol": "URL 必须以 http 或 https 开头",
"url-not-image": "URL 必须直接链接到图片文件",
- "use-valid-url": "请使用有效的 URL"
+ "use-valid-url": "请使用有效的 URL",
+ "editor-url": "Remember to submit the Live App URL.",
+ "own-work-url": "Remember to submit your own work.",
+ "publicly-visible-url": "Remember to submit a publicly visible app URL."
},
"certification": {
"executive": "执行董事,freeCodeCamp.org",
diff --git a/client/i18n/locales/english/translations.json b/client/i18n/locales/english/translations.json
index 6b8e797016..01cb3d247e 100644
--- a/client/i18n/locales/english/translations.json
+++ b/client/i18n/locales/english/translations.json
@@ -474,7 +474,10 @@
"invalid-url": "We could not validate your URL correctly, please ensure it is correct",
"invalid-protocol": "URL must start with http or https",
"url-not-image": "URL must link directly to an image file",
- "use-valid-url": "Please use a valid URL"
+ "use-valid-url": "Please use a valid URL",
+ "editor-url": "Remember to submit the Live App URL.",
+ "own-work-url": "Remember to submit your own work.",
+ "publicly-visible-url": "Remember to submit a publicly visible app URL."
},
"certification": {
"executive": "Executive Director, freeCodeCamp.org",
diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json
index 8d7e27b463..016498d868 100644
--- a/client/i18n/locales/espanol/translations.json
+++ b/client/i18n/locales/espanol/translations.json
@@ -474,7 +474,10 @@
"invalid-url": "No hemos podido validar tu URL correctamente, por favor asegúrate de que sea correcta",
"invalid-protocol": "La URL debe comenzar con http o https",
"url-not-image": "La URL debe enlazar directamente hacia un archivo de imagen",
- "use-valid-url": "Por favor, utiliza una URL válida"
+ "use-valid-url": "Por favor, utiliza una URL válida",
+ "editor-url": "Remember to submit the Live App URL.",
+ "own-work-url": "Remember to submit your own work.",
+ "publicly-visible-url": "Remember to submit a publicly visible app URL."
},
"certification": {
"executive": "Director Ejecutivo, freeCodeCamp.org",
diff --git a/client/src/components/formHelpers/FormValidators.js b/client/src/components/formHelpers/FormValidators.js
index 58176cbb1b..13f4fd4045 100644
--- a/client/src/components/formHelpers/FormValidators.js
+++ b/client/src/components/formHelpers/FormValidators.js
@@ -1,18 +1,21 @@
+import React from 'react';
+import { Trans } from 'react-i18next';
+
// Matches editor links for: Repl.it, Glitch, CodeSandbox, GitHub
const editorRegex = /repl\.it\/(@|join\/)|glitch\.com\/edit\/#!|codesandbox\.io\/s\/|github\.com/;
const fCCRegex = /codepen\.io\/freecodecamp|freecodecamp\.rocks|github\.com\/freecodecamp/i;
const localhostRegex = /localhost:/;
export const editorValidator = value =>
- editorRegex.test(value) ? 'Remember to submit the Live App URL.' : null;
+ editorRegex.test(value) ? validation.editor-url : null;
export const fCCValidator = value =>
- fCCRegex.test(value) ? 'Remember to submit your own work.' : null;
+ fCCRegex.test(value) ? validation.own-work-url : null;
export const localhostValidator = value =>
- localhostRegex.test(value)
- ? 'Remember to submit a publicly visible app URL.'
- : null;
+ localhostRegex.test(value) ? (
+ validation.publicly-visible-url
+ ) : null;
export const composeValidators = (...validators) => value =>
validators.reduce((error, validator) => error ?? validator?.(value), null);