diff --git a/Makefile b/Makefile
index a8332737..5d6f10a6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
export TRANSIFEX_RESOURCE = frontend-app-authn
-transifex_langs = "ar,fr,es_419,zh_CN,pt,it,de,uk,ru,hi,fr_CA,it_IT,pt_PT,de_DE"
+transifex_langs = "ar,de,de_DE,es_419,fa_IR,fr,fr_CA,hi,it,it_IT,pt,pt_PT,ru,uk,zh_CN"
intl_imports = ./node_modules/.bin/intl-imports.js
transifex_utils = ./node_modules/.bin/transifex-utils.js
diff --git a/src/common-components/data/tests/reducer.test.js b/src/common-components/data/tests/reducer.test.js
index 84a66e67..98798208 100644
--- a/src/common-components/data/tests/reducer.test.js
+++ b/src/common-components/data/tests/reducer.test.js
@@ -58,7 +58,7 @@ describe('common components reducer', () => {
providers: [],
secondaryProviders: [],
pipelineUserDetails: null,
- errorMessage: 'An error occured',
+ errorMessage: 'An error occurred',
},
};
diff --git a/src/i18n/index.jsx b/src/i18n/index.jsx
index c6abccca..1814d859 100644
--- a/src/i18n/index.jsx
+++ b/src/i18n/index.jsx
@@ -2,35 +2,37 @@ import { messages as paragonMessages } from '@edx/paragon';
import arMessages from './messages/ar.json';
import deMessages from './messages/de.json';
-import dedeCAMessages from './messages/de_DE.json';
+import deDEMessages from './messages/de_DE.json';
import es419Messages from './messages/es_419.json';
+import faIRMessages from './messages/fa_IR.json';
import frMessages from './messages/fr.json';
import frCAMessages from './messages/fr_CA.json';
import hiMessages from './messages/hi.json';
import itMessages from './messages/it.json';
-import ititCAMessages from './messages/it_IT.json';
+import itITMessages from './messages/it_IT.json';
import ptMessages from './messages/pt.json';
-import ptptCAMessages from './messages/pt_PT.json';
+import ptPTMessages from './messages/pt_PT.json';
import ruMessages from './messages/ru.json';
import ukMessages from './messages/uk.json';
-import zhcnMessages from './messages/zh_CN.json';
+import zhCNMessages from './messages/zh_CN.json';
// no need to import en messages-- they are in the defaultMessage field
const appMessages = {
ar: arMessages,
- 'es-419': es419Messages,
- fr: frMessages,
- 'zh-cn': zhcnMessages,
- pt: ptMessages,
- it: itMessages,
de: deMessages,
- hi: hiMessages,
+ 'de-de': deDEMessages,
+ 'es-419': es419Messages,
+ 'fa-ir': faIRMessages,
+ fr: frMessages,
'fr-ca': frCAMessages,
+ hi: hiMessages,
+ it: itMessages,
+ 'it-it': itITMessages,
+ pt: ptMessages,
+ 'pt-pt': ptPTMessages,
ru: ruMessages,
uk: ukMessages,
- 'de-de': dedeCAMessages,
- 'it-it': ititCAMessages,
- 'pt-pt': ptptCAMessages,
+ 'zh-cn': zhCNMessages,
};
export default [
diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json
index 1838db6c..e91cb68f 100644
--- a/src/i18n/messages/ar.json
+++ b/src/i18n/messages/ar.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "التوصيات | {siteName}",
"recommendation.page.heading": "لدينا بعض التوصيات لكي تبدأ.",
"recommendation.skip.button": "التخطي مؤقتا",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "التسجيل | {siteName}",
"registration.fullname.label": "الاسم الكامل",
"registration.email.label": "البريد الإلكتروني",
@@ -126,6 +135,7 @@
"help.text.email": "لتفعيل الحساب و التحديثات الهامة",
"create.account.for.free.button": "إنشاء حساب مجانا",
"registration.other.options.heading": "أو سجل باستخدام:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "بيانات المؤسسة / الجامعة",
"register.institution.login.page.title": "التسجيل باستخدام بيانات المؤسسة / الجامعة",
"empty.name.field.error": "أدخل اسمك الكامل",
diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/de.json
+++ b/src/i18n/messages/de.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/de_DE.json b/src/i18n/messages/de_DE.json
index 8f35818f..05ba5af5 100644
--- a/src/i18n/messages/de_DE.json
+++ b/src/i18n/messages/de_DE.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Empfehlungen | {siteName}",
"recommendation.page.heading": "Wir haben ein paar Empfehlungen für den Einstieg.",
"recommendation.skip.button": "Überspringen",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Registrieren | {siteName}",
"registration.fullname.label": "Vollständiger Name",
"registration.email.label": "E-Mail-Adresse",
@@ -126,6 +135,7 @@
"help.text.email": "Für die Kontoaktivierung und wichtige Updates",
"create.account.for.free.button": "Erstellen Sie kostenlos ein Benutzerkonto",
"registration.other.options.heading": "Oder registrieren Sie sich bei:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Zeugnisse der Institution/des Campus",
"register.institution.login.page.title": "Registrieren Sie sich mit Institutions-/Campus-Anmeldeinformationen",
"empty.name.field.error": "Geben Sie Ihren vollständigen Namen ein",
diff --git a/src/i18n/messages/es_419.json b/src/i18n/messages/es_419.json
index 3dfc87a4..86c07360 100644
--- a/src/i18n/messages/es_419.json
+++ b/src/i18n/messages/es_419.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recomendaciones | {siteName}",
"recommendation.page.heading": "Tenemos algunas recomendaciones para empezar.",
"recommendation.skip.button": "Saltar por ahora ",
+ "recommendation.option.trending": "Tendencias",
+ "recommendation.option.popular": "Más popular",
+ "recommendation.product-card.pill-text.course": "Curso",
+ "recommendation.product-card.pill-text.professional-certificate": "Certificado profesional",
+ "recommendation.product-card.pill-text.emeritus": "Ofrecido en Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Ofrecido a través de Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Suscripción",
+ "recommendation.product-card.launch-icon.sr-text": "Abrir un enlace en una pestaña nueva",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Nombre completo",
"registration.email.label": "Correo electrónico",
@@ -126,6 +135,7 @@
"help.text.email": "Para la activación de la cuenta y las actualizaciones importantes",
"create.account.for.free.button": "Crea una cuenta gratis",
"registration.other.options.heading": "O regístrese con:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Credenciales de la institución/campus",
"register.institution.login.page.title": "Registro con credenciales de la institución/campus",
"empty.name.field.error": "Introduce tu nombre completo",
diff --git a/src/i18n/messages/fa_IR.json b/src/i18n/messages/fa_IR.json
new file mode 100644
index 00000000..ac558350
--- /dev/null
+++ b/src/i18n/messages/fa_IR.json
@@ -0,0 +1,180 @@
+{
+ "start.learning": "آغاز یادگیری",
+ "with.site.name": "با {siteName}",
+ "your.career.turning.point": "نقطه عطف حرفه ای شما",
+ "is.here": "اینجاست.",
+ "welcome.to.platform": "خوش آمدید به {siteName}, {username}!",
+ "complete.your.profile.1": "کامل",
+ "complete.your.profile.2": "پرونده کاربری شما",
+ "institution.login.page.sub.heading": "موسسه خود را از فهرست زیر برگزینید",
+ "logistration.sign.in": "ورود",
+ "logistration.register": "ثبتنام",
+ "enterprisetpa.title.heading": "آیا میخواهید با استفاده از اطلاعات کاربری {providerName} خود وارد سامانه شوید؟",
+ "enterprisetpa.login.button.text": "راههای دیگری برای ورود به سامانه یا ثبتنام به من نشان بده",
+ "enterprisetpa.login.button.text.public.account.creation.disabled": "راه های دیگری را برای ورود به سیستم به من نشان دهید",
+ "sso.sign.in.with": "با {providerName} وارد شوید",
+ "sso.create.account.using": "با استفاده از {providerName} حساب کاربری بسازید",
+ "show.password": "نمایش گذرواژه",
+ "hide.password": "پنهانسازی گذرواژه",
+ "one.letter": "1 نامه",
+ "one.number": "1 رقم",
+ "eight.characters": "8 نویسه",
+ "password.sr.only.helping.text": "گذرواژه باید حداقل 8 نویسه، حداقل یک حرف و حداقل یک عدد داشته باشد",
+ "tpa.alert.heading": "تقریبا تمام شد!",
+ "login.third.party.auth.account.not.linked": "شما با موفقیت به {currentProvider} وارد شدید، اما حساب کاربری {currentProvider} شما به حساب کاربری {platformName} پیوند ندارد. برای پیوند حسابهای کاربری خود، اکنون با استفاده از گذرواژه {platformName} خود وارد شوید.",
+ "register.third.party.auth.account.not.linked": "شما با موفقیت به {currentProvider} وارد شدید! پیش از آغاز یادگیری با {platformName} فقط به کمی اطلاعات بیشتر نیاز داریم.",
+ "registration.using.tpa.form.heading": "ساخت حساب کاربری خود را به اتمام برسانید",
+ "zendesk.supportTitle": "پشتیبانی edX",
+ "zendesk.selectTicketForm": "لطفا نوع درخواست خود را انتخاب کنید:",
+ "error.notfound.message": "صفحه مورد نظر شما در دسترس نیست یا خطایی در نشانی اینترنتی وجود دارد. لطفاً نشانی اینترنتی را بررسی کرده و دوباره تلاش کنید.",
+ "forgot.password.confirmation.message": "ما رایانامهای بههمراه دستورالعمل بازنشانی گذرواژه به {email} ارسال کردیم. اگر پس از 1 دقیقه پیام بازنشانی را دریافت نکردید، بررسی کنید که نشانی رایانامه را صحیح وارد کردهاید یا پوشه هرزنامه خود را بررسی کنید. اگر به دریافت راهنمایی بیشتری، با {supportLink} تماس بگیرید.",
+ "forgot.password.page.title": "فراموش گذرواژه | {siteName}",
+ "forgot.password.page.heading": "بازتنظیم گذرواژه",
+ "forgot.password.page.instructions": "لطفا نشانی رایانامه خود را در قسمت زیر وارد کنید و ما رایانامهای حاوی دستورالعمل نحوه بازتنظیم مجدد گذرواژه برای شما ارسال خواهیم کرد.",
+ "forgot.password.page.invalid.email.message": "نشانی رایانامه معتبری را وارد کنید",
+ "forgot.password.page.email.field.label": "رایانامه",
+ "forgot.password.page.submit.button": "ارسال",
+ "forgot.password.error.alert.title.": "ما نتوانستیم با شما تماس بگیریم.",
+ "forgot.password.error.message.title": "خطایی رخ داد.",
+ "forgot.password.request.in.progress.message": "درخواست قبلی شما در حال انجام است، لطفا چند لحظه دیگر دوباره تلاش کنید.",
+ "forgot.password.empty.email.field.error": "نشانی رایانامه خود را وارد کنید",
+ "forgot.password.email.help.text": "نشانی رایانامهای که برای ثبتنام در {platformName} استفاده کردید",
+ "confirmation.message.title": "صندوق رایانامه خود را ببینید",
+ "confirmation.support.link": "با پشتیبانی فنی تماس بگیرید",
+ "need.help.sign.in.text": "برای ورود به سامانه نیاز به کمک دارید؟",
+ "additional.help.text": "برای دریافت راهنمایی بیشتر، با پشتیبانی {platformName} در این آدرس تماس بگیرید",
+ "sign.in.text": "ورود",
+ "extend.field.errors": "{emailError} زیر.",
+ "invalid.token.heading": "پیوند بازتنظیم گذرواژه معتبر نیست",
+ "invalid.token.error.message": "این پیوند برای بازتنظیم گذرواژه معتبر نیست. ممکن است قبلاً استفاده شده باشد. برای دریافت پیوند جدید نشانی رایانامه خود را در زیر وارد کنید.",
+ "token.validation.rate.limit.error.heading": "تعداد زیاد درخواست",
+ "token.validation.rate.limit.error": "به دلیل درخواستهای زیاد، خطایی روی داده است. لطفا بعد از مدتی دوباره امتحان کنید.",
+ "token.validation.internal.sever.error.heading": "اعتبارسنجی رمز انجام نشد",
+ "token.validation.internal.sever.error": "خطایی رخ داده است. صفحه را دوباره بارگیری کنید یا اتصال اینترنت خود را بررسی کنید.",
+ "internal.server.error": "خطایی رخ داده است. صفحه را دوباره بارگیری کنید یا اتصال اینترنت خود را بررسی کنید.",
+ "account.activation.error.message": "اشتباهی رخ داد، لطفاً برای حل این مساله ، به این قسمت{supportLink} مراجعه کنید.",
+ "login.inactive.user.error": "برای ورود به سامانه، باید حساب کاربری خود را فعال کنید.{lineBreak} {lineBreak}هم اکنون پیوند فعالسازی را به {email} فرستادیم. اگر رایانامهای دریافت نکردید، پوشههای هرزنامه یا {supportLink} را بررسی کنید.",
+ "allowed.domain.login.error": "به عنوان کاربر {allowedDomain}، باید با {allowedDomain} {tpaLink} خود وارد شوید.",
+ "login.incorrect.credentials.error.attempts.text.1": "نام کاربری، نشانی رایانامه یا گذرواژهای که وارد کردهاید نادرست است. پیش از اینکه حساب کاربری شما موقتا قفل شود، {remainingAttempts} تلاش دیگر برای ورود به سامانه دارید.",
+ "login.incorrect.credentials.error.attempts.text.2": "اگر گذرواژه خود را فراموش کردهاید، {resetLink}",
+ "account.locked.out.message.2": "برای حفظ امنیت، میتوانید پیش از تلاش مجدد، {resetLink} را انجام دهید.",
+ "login.incorrect.credentials.error.with.reset.link": "نام کاربری، نشانی رایانامه یا گذرواژهای که وارد کردید درست نیست. لطفاً دوباره امتحان کنید یا {resetLink}.",
+ "login.page.title": "ورود به سامانه | {siteName}",
+ "login.user.identity.label": "نام کاربری یا نشانی رایانامه",
+ "login.password.label": "گذرواژه",
+ "sign.in.button": "ورود به سامانه",
+ "forgot.password": "فراموشی گذرواژه",
+ "institution.login.button": "اعتبارنامههای موسسه/پردیس",
+ "institution.login.page.title": "با اعتبار موسسه/پردیس وارد شوید",
+ "login.other.options.heading": "یا وارد شوید با:",
+ "non.compliant.password.title": "ما اخیراً الزامات گذرواژه خود را تغییر دادیم",
+ "non.compliant.password.message": "گذرواژه فعلی شما الزامات امنیتی جدید را برآورده نمیکند. ما فقط یک پیام بازتنظیم گذرواژه به نشانی رایانامه مرتبط با این حساب کاربری ارسال کردیم. از اینکه به ما کمک میکنید تا دادههای شما را ایمن نگه دارید متشکریم.",
+ "account.locked.out.message.1": "حساب کاربری شما، به دلیل حفاظت، بهطور موقت قفل شده است. 30 دقیقه دیگر دوباره امتحان کنید.",
+ "enterprise.login.btn.text": "اعتبار دانشکده یا شرکت",
+ "username.or.email.format.validation.less.chars.message": "نام کاربری یا نشانی رایانامه حداقل باید 3 نویسه داشته باشد",
+ "email.validation.message": "نام کاربری یا رایانامه خود را وارد کنید",
+ "password.validation.message": "معیارهای گذرواژه رعایت نشده است",
+ "account.activation.success.message.title": "موفق شدید! شما حساب کاربری خود را فعال کردید.",
+ "account.activation.success.message": "اکنون رایانامههای مربوط به روزآمدسازیها و هشدارها درباره دورههای آموزشی را که در آن ثبتنام کردهاید از ما دریافت خواهید کرد. برای ادامه وارد شوید.",
+ "account.activation.info.message": "حساب کاربری مورد نظر شما قبلاً فعال شده است.",
+ "account.activation.error.message.title": "امکان فعالسازی حساب کاربری شما نبود",
+ "account.activation.support.link": "تماس با پشتیبانی ",
+ "account.confirmation.success.message.title": "موفق شدید! نشانی رایانامه خود را تایید کردید.",
+ "account.confirmation.success.message": "برای ادامه وارد سامانه شوید.",
+ "account.confirmation.info.message": "این نشانی رایانامه قبلا تایید شدهاست.",
+ "account.confirmation.error.message.title": "امکان تایید نشانی رایانامه شما وجود ندارد",
+ "tpa.account.link": "حساب {provider}",
+ "internal.server.error.message": "خطایی رخ داده است. صفحه را دوباره بارگیری کنید یا اتصال اینترنت خود را بررسی کنید.",
+ "login.rate.limit.reached.message": "شما برای ورود به حساب کاربری چند بار تلاش ناموفق داشتید. لطفا بعدا تلاش نمایید.",
+ "login.failure.header.title": "قادر نیستیم شما را به سامانه وارد کنیم.",
+ "contact.support.link": "با پشتیبانی {platformName} تماس بگیرید",
+ "login.incorrect.credentials.error": "نام کاربری، نشانی رایانامه یا گذرواژهای که وارد کردید نادرست است. لطفا دوباره تلاش کنید.",
+ "login.form.invalid.error.message": "لطفا قسمتهای زیر را پر کنید.",
+ "login.incorrect.credentials.error.reset.link.text": "گذرواژه را بازتنظیم کنید",
+ "login.incorrect.credentials.error.before.account.blocked.text": "برای بازتنظیم اینجا بزنید",
+ "password.security.nudge.title": "امنیت گذرواژه",
+ "password.security.block.title": "تغییر گذرواژه ضروری است",
+ "password.security.nudge.body": "سامانه ما تشخیص داده است که گذرواژه شما آسیبپذیر است. توصیه ما این است که آن را تغییر دهید تا حساب کاربری شما ایمن بماند.",
+ "password.security.block.body": "سامانه ما تشخیص داده است که گذرواژه شما ضعیف و آسیبپذیر است. گذرواژه خود را تغییر دهید تا حساب کاربری شما ایمن بماند.",
+ "password.security.close.button": "بستن",
+ "password.security.redirect.to.reset.password.button": "بازتنظیم گذرواژه",
+ "login.tpa.authentication.failure": "متأسفیم، شما مجاز به دسترسی به {platform_name} از طریق این کانال نیستید. لطفاً برای دسترسی به {platform_name} با سرپرست یا مدیر آموزشی خود تماس بگیرید.{lineBreak}{lineBreak}جزئیات خطا:{lineBreak}{errorMessage}",
+ "progressive.profiling.page.title": "خوش آمدید | {siteName}",
+ "progressive.profiling.page.heading": "چند سوال برای شما به ما کمک خواهد کرد تا باهوشتر شویم.",
+ "optional.fields.information.link": "درباره نحوه استفاده ما از این اطلاعات بیشتر بدانید.",
+ "optional.fields.submit.button": "ارسال",
+ "optional.fields.skip.button": "فعلا بگذرید",
+ "optional.fields.next.button": "بعدی",
+ "continue.to.platform": "ادامه در {platformName}",
+ "modal.title": "از اینکه اطلاع دادید تشکر میکنیم.",
+ "modal.description": "در صورت تغییر تصمیمتان، شما هر زمانی این امکان را دارید که پرونده کاربری خود را در قسمت تنظیمات تکمیل کنید. ",
+ "welcome.page.error.heading": "امکان روزآمدسازی پرونده کاربری شما نیست",
+ "welcome.page.error.message": "خطایی رخ داد. میتوانید پرونده کاربری خود را هر زمان در قسمت تنظیمات تکمیل کنید.",
+ "recommendation.page.title": "توصیه ها | {siteName}",
+ "recommendation.page.heading": "ما چند توصیه برای شروع کار داریم.",
+ "recommendation.skip.button": "فعلا بگذرید",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
+ "register.page.title": "ثبتنام | {siteName}",
+ "registration.fullname.label": "نام و نام خانوادگی",
+ "registration.email.label": "رایانامه",
+ "registration.username.label": "نامکاربری عمومی",
+ "registration.password.label": "گذرواژه",
+ "registration.country.label": "کشور/منطقه",
+ "registration.opt.in.label": "با ارسال پیامهای بازرگانی از سوی {siteName} موافقم.",
+ "help.text.name": "این نام در هر گواهی که بدست آورید استفاده خواهد شد.",
+ "help.text.username.1": "نامی که شما را در دورههای آموزشی با آن شناخته خواهید شد.",
+ "help.text.username.2": "این مورد بعدا قابل تغییر نیست.",
+ "help.text.email": "برای فعالسازی حساب کاربری و روزآمدسازیهای مهم",
+ "create.account.for.free.button": "یک حساب کاربری رایگان بسازید",
+ "registration.other.options.heading": "یا ثبتنام کنید با:",
+ "create.account.cta.button": "{label}",
+ "register.institution.login.button": "اعتبارنامههای موسسه/پردیس",
+ "register.institution.login.page.title": "با اعتبارنامه موسسه/پردیس ثبتنام کنید",
+ "empty.name.field.error": "نام و نام خانوادگی خود را وارد کنید",
+ "empty.email.field.error": "نشانی رایانامه خود را وارد کنید",
+ "empty.username.field.error": "نام کاربری باید بین 2 تا 30 نویسه داشته باشد",
+ "empty.password.field.error": "معیارهای گذرواژه رعایت نشده است",
+ "empty.country.field.error": "کشور یا منطقه محل سکونت خود را برگزینید",
+ "email.do.not.match": "نشانیهای رایانامه همخوانی ندارند.",
+ "email.invalid.format.error": "نشانی رایانامه معتبر وارد کنید",
+ "username.validation.message": "نام کاربری باید بین 2 تا 30 نویسه داشته باشد",
+ "name.validation.message": "نامی معتبر وارد کنید",
+ "username.format.validation.message": "نام کاربری فقط میتواند شامل حروف (A-Z، a-z)، اعداد (0-9)، خط زیر (_) و خط فاصله (-) باشد. نام کاربری نمیتواند حاوی فاصله باشد",
+ "registration.request.failure.header": "موفق به ایجاد حساب کاربری شما نشدیم.",
+ "registration.empty.form.submission.error": "لطفاً پاسخهای خود را بررسی کرده و دوباره امتحان کنید.",
+ "registration.request.server.error": "خطایی رخ داده است. صفحه را دوباره بارگیری کنید یا اتصال اینترنت خود را بررسی کنید.",
+ "registration.rate.limit.error": "تعداد دفعات تلاش ناموفق برای ثبتنام بسیار بوده است. بعدا دوباره تلاش کنید.",
+ "registration.tpa.session.expired": "مهلت ثبتنام {provider} به پایان رسیدهاست.",
+ "registration.tpa.authentication.failure": "متأسفیم، شما مجاز به دسترسی به {platform_name} از طریق این کانال نیستید. لطفاً برای دسترسی به {platform_name} با سرپرست یا مدیر آموزشی خود تماس بگیرید.{lineBreak}{lineBreak}جزئیات خطا:{lineBreak}{errorMessage}",
+ "terms.of.service.and.honor.code": "شرایط استفاده از خدمات و اصول اخلاقی",
+ "privacy.policy": "قواعد حفظ حریم خصوصی",
+ "honor.code": "اصول اخلاقی",
+ "terms.of.service": "شرایط استفاده از خدمات",
+ "registration.username.suggestion.label": "پیشنهادشده:",
+ "did.you.mean.alert.text": "منظور شما این بود",
+ "register.page.terms.of.service.and.honor.code": "با ایجاد یک حساب کاربری، با {tosAndHonorCode} موافقت میکنید و تصدیق میکنید که {platformName} و هر عضو دادههای شخصی شما را مطابق با {privacyPolicy} پردازش میکنند.",
+ "register.page.honor.code": "من با {platformName} {tosAndHonorCode} موافقم",
+ "register.page.terms.of.service": "من با {platformName} {termsOfService} موافقم",
+ "sign.in": "ورود",
+ "reset.password.page.title": "بازتنظیم گذرواژه | {siteName}",
+ "reset.password": "بازتنظیم گذرواژه",
+ "reset.password.page.instructions": "گذرواژه جدید را مجددا وارد کنید ",
+ "new.password.label": "گذرواژه جدید",
+ "confirm.password.label": "تایید گذرواژه",
+ "passwords.do.not.match": "گذرواژهها مطابقت ندارند",
+ "confirm.your.password": "تایید گذرواژه ",
+ "reset.password.failure.heading": "امکان بازتنظیم گذرواژه شما نیست.",
+ "reset.password.form.submission.error": "لطفاً پاسخهای خود را بررسی کرده و دوباره امتحان کنید.",
+ "reset.server.rate.limit.error": "تعداد درخواستها خیلی زیاد است.",
+ "reset.password.success.heading": "بازتنظیم گذرواژه تکمیل شد.",
+ "reset.password.success": "گذرواژه شما بازتنظیم شد. وارد حساب کاربری خود شوید",
+ "rate.limit.error": "به دلیل درخواستهای زیاد، خطایی روی داده است. لطفا بعد از مدتی دوباره امتحان کنید."
+}
\ No newline at end of file
diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json
index ec6a8e73..241fe937 100644
--- a/src/i18n/messages/fr.json
+++ b/src/i18n/messages/fr.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "S'inscrire | {siteName}",
"registration.fullname.label": "Nom complet",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "Pour l'activation du compte et les mises à jour importantes",
"create.account.for.free.button": "Créer un compte gratuitement",
"registration.other.options.heading": "Ou inscrivez-vous avec :",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Identifiants de l'établissement/du campus",
"register.institution.login.page.title": "Inscription avec les crédentiels d'institution ou de campus",
"empty.name.field.error": "Saisissez votre nom complet",
diff --git a/src/i18n/messages/fr_CA.json b/src/i18n/messages/fr_CA.json
index 3f2ac7ae..19690a93 100644
--- a/src/i18n/messages/fr_CA.json
+++ b/src/i18n/messages/fr_CA.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommandations | {siteName}",
"recommendation.page.heading": "Nous avons quelques recommandations pour vous aider à démarrer.",
"recommendation.skip.button": "Ignorer pour l'instant",
+ "recommendation.option.trending": "Tendance",
+ "recommendation.option.popular": "Le plus populaire",
+ "recommendation.product-card.pill-text.course": "Cours",
+ "recommendation.product-card.pill-text.professional-certificate": "Attestation professionnelle",
+ "recommendation.product-card.pill-text.emeritus": "Offert à titre émérite",
+ "recommendation.product-card.pill-text.shorelight": "Offert par Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Abonnement",
+ "recommendation.product-card.launch-icon.sr-text": "Ouvre un lien dans un nouvel onglet",
"register.page.title": "S'inscrire | {siteName}",
"registration.fullname.label": "Nom complet",
"registration.email.label": "Courriel",
@@ -126,6 +135,7 @@
"help.text.email": "Pour l'activation du compte et les mises à jour importantes",
"create.account.for.free.button": "Créer un compte gratuitement",
"registration.other.options.heading": "Ou inscrivez-vous avec :",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Identifiants de l'établissement/du campus",
"register.institution.login.page.title": "Inscription avec les crédentiels d'institution ou de campus",
"empty.name.field.error": "Saisissez votre nom complet",
diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/hi.json
+++ b/src/i18n/messages/hi.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/it.json
+++ b/src/i18n/messages/it.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/it_IT.json b/src/i18n/messages/it_IT.json
index a7bb6256..0e91e1b6 100644
--- a/src/i18n/messages/it_IT.json
+++ b/src/i18n/messages/it_IT.json
@@ -99,7 +99,7 @@
"password.security.close.button": "Chiudi",
"password.security.redirect.to.reset.password.button": "Ripristina la tua password",
"login.tpa.authentication.failure": "We are sorry, you are not authorized to access {platform_name} via this channel. Please contact your learning administrator or manager in order to access {platform_name}.{lineBreak}{lineBreak}Error Details:{lineBreak}{errorMessage}",
- "progressive.profiling.page.title": "Welcome | {siteName}",
+ "progressive.profiling.page.title": "Benvenuto | {siteName}",
"progressive.profiling.page.heading": "Alcune domande per te ci aiuteranno a diventare più intelligenti.",
"optional.fields.information.link": "Ulteriori informazioni su come utilizziamo queste informazioni.",
"optional.fields.submit.button": "Invia",
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Registrazione | {siteName}",
"registration.fullname.label": "Nome e Cognome",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "Per l'attivazione dell'account e aggiornamenti importanti",
"create.account.for.free.button": "Crea un account gratis",
"registration.other.options.heading": "Oppure registrati con:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Credenziali dell'istituto/campus",
"register.institution.login.page.title": "Registrati con le credenziali dell'istituzione/campus",
"empty.name.field.error": "Inserisci il tuo nome e cognome",
diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/pt.json
+++ b/src/i18n/messages/pt.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/pt_PT.json b/src/i18n/messages/pt_PT.json
index 1aae85cb..fb7cf9f1 100644
--- a/src/i18n/messages/pt_PT.json
+++ b/src/i18n/messages/pt_PT.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recomendações | {siteName}",
"recommendation.page.heading": "Temos algumas recomendações para o ajudar a começar.",
"recommendation.skip.button": "Saltar por enquanto",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Registar | {siteName}",
"registration.fullname.label": "Nome completo",
"registration.email.label": "E-mail",
@@ -126,6 +135,7 @@
"help.text.email": "Para ativação de contas e atualizações importantes",
"create.account.for.free.button": "Criar uma conta gratuitamente",
"registration.other.options.heading": "Ou registe-se com:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Credenciais da instituição/campus",
"register.institution.login.page.title": "Registo com credenciais da instituição/campus",
"empty.name.field.error": "Insira o seu nome completo",
diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/ru.json
+++ b/src/i18n/messages/ru.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/uk.json b/src/i18n/messages/uk.json
index 77cb2657..5c0dfae3 100644
--- a/src/i18n/messages/uk.json
+++ b/src/i18n/messages/uk.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "Recommendations | {siteName}",
"recommendation.page.heading": "We have a few recommendations to get you started.",
"recommendation.skip.button": "Skip for now",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "Register | {siteName}",
"registration.fullname.label": "Full name",
"registration.email.label": "Email",
@@ -126,6 +135,7 @@
"help.text.email": "For account activation and important updates",
"create.account.for.free.button": "Create an account for free",
"registration.other.options.heading": "Or register with:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "Institution/campus credentials",
"register.institution.login.page.title": "Register with institution/campus credentials",
"empty.name.field.error": "Enter your full name",
diff --git a/src/i18n/messages/zh_CN.json b/src/i18n/messages/zh_CN.json
index e5c3f302..ea9d8806 100644
--- a/src/i18n/messages/zh_CN.json
+++ b/src/i18n/messages/zh_CN.json
@@ -113,6 +113,15 @@
"recommendation.page.title": "建议 | {siteName}",
"recommendation.page.heading": "我们有一些建议可以帮助您入门。",
"recommendation.skip.button": "暂时跳过",
+ "recommendation.option.trending": "Trending",
+ "recommendation.option.popular": "Most Popular",
+ "recommendation.product-card.pill-text.course": "Course",
+ "recommendation.product-card.pill-text.professional-certificate": "Professional Certificate",
+ "recommendation.product-card.pill-text.emeritus": "Offered on Emeritus",
+ "recommendation.product-card.pill-text.shorelight": "Offered through Shorelight",
+ "recommendation.product-card.footer-text.number-of-courses": "{length} {label}",
+ "recommendation.product-card.footer-text.subscription": "Subscription",
+ "recommendation.product-card.launch-icon.sr-text": "Opens a link in a new tab",
"register.page.title": "注册 | {siteName}",
"registration.fullname.label": "全名",
"registration.email.label": "邮箱",
@@ -126,6 +135,7 @@
"help.text.email": "用于帐户激活和重要更新",
"create.account.for.free.button": "免费创建一个帐户",
"registration.other.options.heading": "或注册:",
+ "create.account.cta.button": "{label}",
"register.institution.login.button": "机构/院系验证",
"register.institution.login.page.title": "使用机构/院系账户注册",
"empty.name.field.error": "输入您的全名",
diff --git a/src/login/tests/LoginFailure.test.jsx b/src/login/tests/LoginFailure.test.jsx
index 3e84e339..2357b611 100644
--- a/src/login/tests/LoginFailure.test.jsx
+++ b/src/login/tests/LoginFailure.test.jsx
@@ -225,7 +225,7 @@ describe('LoginFailureMessage', () => {
loginError: {
errorCode: TPA_AUTHENTICATION_FAILURE,
context: {
- errorMessage: 'An error occured',
+ errorMessage: 'An error occurred',
},
},
};
@@ -239,7 +239,7 @@ describe('LoginFailureMessage', () => {
const expectedMessageSubstring = 'We are sorry, you are not authorized to access';
expect(loginFailureMessage.find('#login-failure-alert').first().text()).toContain(expectedMessageSubstring);
- expect(loginFailureMessage.find('#login-failure-alert').first().text()).toContain('An error occured');
+ expect(loginFailureMessage.find('#login-failure-alert').first().text()).toContain('An error occurred');
});
it('should show modal that nudges users to change password', () => {
diff --git a/src/login/tests/LoginPage.test.jsx b/src/login/tests/LoginPage.test.jsx
index 1f594742..4d1fbd37 100644
--- a/src/login/tests/LoginPage.test.jsx
+++ b/src/login/tests/LoginPage.test.jsx
@@ -445,13 +445,13 @@ describe('LoginPage', () => {
thirdPartyAuthContext: {
...initialState.commonComponents.thirdPartyAuthContext,
currentProvider: null,
- errorMessage: 'An error occured',
+ errorMessage: 'An error occurred',
},
},
});
const loginPage = mount(reduxWrapper());
- expect(loginPage.find('#login-failure-alert').find('p').text()).toContain('An error occured');
+ expect(loginPage.find('#login-failure-alert').find('p').text()).toContain('An error occurred');
});
it('should match invalid login form error message', () => {
diff --git a/src/recommendations/data/tests/utils.test.jsx b/src/recommendations/data/tests/utils.test.jsx
index be69464d..f37a8944 100644
--- a/src/recommendations/data/tests/utils.test.jsx
+++ b/src/recommendations/data/tests/utils.test.jsx
@@ -1,9 +1,9 @@
import mockedProductData from '../../tests/mockedData';
-import { convertCourseRunKeytoCourseKey, filterLocationRestriction, useProductType } from '../utils';
+import { convertCourseRunKeyToCourseKey, filterLocationRestriction, useProductType } from '../utils';
describe('UtilsTests', () => {
it('should return the courseKey after parsing the activeCourseRun key', async () => {
- const courseKey = convertCourseRunKeytoCourseKey('course-v1:Demox+Test101+2023');
+ const courseKey = convertCourseRunKeyToCourseKey('course-v1:Demox+Test101+2023');
expect(courseKey).toEqual('Demox+Test101');
});
it('should filter courses on the basis of country code', async () => {
diff --git a/src/recommendations/data/utils.js b/src/recommendations/data/utils.js
index b7875c14..0fe0e741 100644
--- a/src/recommendations/data/utils.js
+++ b/src/recommendations/data/utils.js
@@ -1,4 +1,4 @@
-export const convertCourseRunKeytoCourseKey = (courseRunKey) => {
+export const convertCourseRunKeyToCourseKey = (courseRunKey) => {
if (!courseRunKey) {
return '';
}
@@ -62,4 +62,4 @@ export const filterLocationRestriction = (products, countryCode) => products.fil
},
);
-export default convertCourseRunKeytoCourseKey;
+export default convertCourseRunKeyToCourseKey;
diff --git a/src/register/RegistrationPage.jsx b/src/register/RegistrationPage.jsx
index 0fe7c8db..de33ec87 100644
--- a/src/register/RegistrationPage.jsx
+++ b/src/register/RegistrationPage.jsx
@@ -17,7 +17,7 @@ import Skeleton from 'react-loading-skeleton';
import ConfigurableRegistrationForm from './ConfigurableRegistrationForm';
import {
backupRegistrationFormBegin,
- clearRegistertionBackendError,
+ clearRegistrationBackendError,
clearUsernameSuggestions,
fetchRealtimeValidations,
registerNewUser,
@@ -810,7 +810,7 @@ export default connect(
mapStateToProps,
{
backupFormState: backupRegistrationFormBegin,
- clearBackendError: clearRegistertionBackendError,
+ clearBackendError: clearRegistrationBackendError,
getRegistrationDataFromBackend: getThirdPartyAuthContext,
resetUsernameSuggestions: clearUsernameSuggestions,
validateFromBackend: fetchRealtimeValidations,
diff --git a/src/register/data/actions.js b/src/register/data/actions.js
index ca9ffb82..d1316ed7 100644
--- a/src/register/data/actions.js
+++ b/src/register/data/actions.js
@@ -4,7 +4,7 @@ export const BACKUP_REGISTRATION_DATA = new AsyncActionType('REGISTRATION', 'BAC
export const REGISTER_FORM_VALIDATIONS = new AsyncActionType('REGISTRATION', 'GET_FORM_VALIDATIONS');
export const REGISTER_NEW_USER = new AsyncActionType('REGISTRATION', 'REGISTER_NEW_USER');
export const REGISTER_CLEAR_USERNAME_SUGGESTIONS = 'REGISTRATION_CLEAR_USERNAME_SUGGESTIONS';
-export const REGISTERATION_CLEAR_BACKEND_ERROR = 'REGISTERATION_CLEAR_BACKEND_ERROR';
+export const REGISTRATION_CLEAR_BACKEND_ERROR = 'REGISTRATION_CLEAR_BACKEND_ERROR';
export const REGISTER_SET_COUNTRY_CODE = 'REGISTER_SET_COUNTRY_CODE';
export const REGISTER_SET_USER_PIPELINE_DATA_LOADED = 'REGISTER_SET_USER_PIPELINE_DATA_LOADED';
@@ -62,8 +62,8 @@ export const clearUsernameSuggestions = () => ({
type: REGISTER_CLEAR_USERNAME_SUGGESTIONS,
});
-export const clearRegistertionBackendError = (fieldName) => ({
- type: REGISTERATION_CLEAR_BACKEND_ERROR,
+export const clearRegistrationBackendError = (fieldName) => ({
+ type: REGISTRATION_CLEAR_BACKEND_ERROR,
payload: fieldName,
});
diff --git a/src/register/data/reducers.js b/src/register/data/reducers.js
index f69518c9..35586163 100644
--- a/src/register/data/reducers.js
+++ b/src/register/data/reducers.js
@@ -4,7 +4,7 @@ import {
REGISTER_FORM_VALIDATIONS,
REGISTER_NEW_USER,
REGISTER_SET_COUNTRY_CODE, REGISTER_SET_USER_PIPELINE_DATA_LOADED,
- REGISTERATION_CLEAR_BACKEND_ERROR,
+ REGISTRATION_CLEAR_BACKEND_ERROR,
} from './actions';
import {
DEFAULT_STATE,
@@ -73,7 +73,7 @@ const reducer = (state = defaultState, action = {}) => {
usernameSuggestions: usernameSuggestions || state.usernameSuggestions,
};
}
- case REGISTERATION_CLEAR_BACKEND_ERROR: {
+ case REGISTRATION_CLEAR_BACKEND_ERROR: {
const registrationErrorTemp = state.registrationError;
delete registrationErrorTemp[action.payload];
return {
diff --git a/src/register/data/tests/reducers.test.js b/src/register/data/tests/reducers.test.js
index df03d7a1..a4bb32ba 100644
--- a/src/register/data/tests/reducers.test.js
+++ b/src/register/data/tests/reducers.test.js
@@ -8,7 +8,7 @@ import {
REGISTER_NEW_USER,
REGISTER_SET_COUNTRY_CODE,
REGISTER_SET_USER_PIPELINE_DATA_LOADED,
- REGISTERATION_CLEAR_BACKEND_ERROR,
+ REGISTRATION_CLEAR_BACKEND_ERROR,
} from '../actions';
import reducer from '../reducers';
@@ -116,7 +116,7 @@ describe('Registration Reducer Tests', () => {
},
);
});
- it('should set the register user when SSO pipline data is loaded', () => {
+ it('should set the register user when SSO pipeline data is loaded', () => {
const payload = { value: true };
const action = {
type: REGISTER_SET_USER_PIPELINE_DATA_LOADED,
@@ -224,7 +224,7 @@ describe('Registration Reducer Tests', () => {
registrationError: { email: `This email is already associated with an existing or previous ${ getConfig().SITE_NAME } account` },
};
const action = {
- type: REGISTERATION_CLEAR_BACKEND_ERROR,
+ type: REGISTRATION_CLEAR_BACKEND_ERROR,
payload: 'email',
};
diff --git a/src/register/tests/RegistrationPage.test.jsx b/src/register/tests/RegistrationPage.test.jsx
index 06da54f6..11a70dc5 100644
--- a/src/register/tests/RegistrationPage.test.jsx
+++ b/src/register/tests/RegistrationPage.test.jsx
@@ -437,8 +437,8 @@ describe('RegistrationPage', () => {
registrationPage.find('input#email').simulate('change', { target: { value: 'ahtesham@hotmail', name: 'email' } });
registrationPage.find('input#email').simulate('blur');
- const receievedMessage = 'Did you mean ahtesham@hotmail.com?';
- expect(registrationPage.find('.email-suggestion__text').text()).toEqual(receievedMessage);
+ const receivedMessage = 'Did you mean ahtesham@hotmail.com?';
+ expect(registrationPage.find('.email-suggestion__text').text()).toEqual(receivedMessage);
});
it('should call backend validation api for password validation', () => {
@@ -1135,7 +1135,7 @@ describe('RegistrationPage', () => {
expect(registrationPage.find('div[feedback-for="country"]').exists()).toBeFalsy();
});
- it('should clear the registation validation error on change event on field focused', () => {
+ it('should clear the registration validation error on change event on field focused', () => {
store = mockStore({
...initialState,
register: {
@@ -1376,7 +1376,7 @@ describe('RegistrationPage', () => {
...initialState.commonComponents.thirdPartyAuthContext,
currentProvider: ssoProvider.name,
pipelineUserDetails: {},
- errorMessage: 'An error occured',
+ errorMessage: 'An error occurred',
autoSubmitRegForm: true,
},
},
@@ -1406,7 +1406,7 @@ describe('RegistrationPage', () => {
...initialState.commonComponents.thirdPartyAuthContext,
currentProvider: null,
pipelineUserDetails: {},
- errorMessage: 'An error occured',
+ errorMessage: 'An error occurred',
},
},
});
@@ -1415,7 +1415,7 @@ describe('RegistrationPage', () => {
const registrationPage = mount(routerWrapper(reduxWrapper()));
expect(registrationPage.find('div.alert-heading').length).toEqual(1);
- expect(registrationPage.find('div.alert').first().text()).toContain('An error occured');
+ expect(registrationPage.find('div.alert').first().text()).toContain('An error occurred');
});
it('should not run country field validation when onBlur is fired by drop-down arrow icon click', () => {
diff --git a/src/sass/_progressive_profiling_page.scss b/src/sass/_progressive_profiling_page.scss
index 5d9c877d..ae66b0fd 100644
--- a/src/sass/_progressive_profiling_page.scss
+++ b/src/sass/_progressive_profiling_page.scss
@@ -5,13 +5,12 @@
font-size: 0.875rem;
font-weight: 400;
}
-
.pp-page__heading {
line-height: 1.75rem;
font-size: 1.375rem;
margin-bottom: 0.5rem;
font-weight: 700;
-
+
@include media-breakpoint-down('md') {
line-height: 1.5rem;
font-size: 1.125rem;