diff --git a/src/base-container/components/default-layout/DefaultLayout.test.jsx b/src/base-container/components/default-layout/DefaultLayout.test.jsx new file mode 100644 index 00000000..3f6956d7 --- /dev/null +++ b/src/base-container/components/default-layout/DefaultLayout.test.jsx @@ -0,0 +1,50 @@ +import React from 'react'; + +import { IntlProvider } from '@edx/frontend-platform/i18n'; +import { mount } from 'enzyme'; + +import { DefaultLargeLayout, DefaultMediumLayout, DefaultSmallLayout } from './index'; + +describe('Default Layout tests', () => { + it('should display the form passed as a child in SmallScreenLayout', () => { + const smallScreen = mount( + +
+ +
+ +
+
+
, + ); + expect(smallScreen.find('form').exists()).toEqual(true); + }); + + it('should display the form passed as a child in MediumScreenLayout', () => { + const mediumScreen = mount( + +
+ +
+ +
+
+
, + ); + expect(mediumScreen.find('form').exists()).toEqual(true); + }); + + it('should display the form passed as a child in LargeScreenLayout', () => { + const largeScreen = mount( + +
+ +
+ +
+
+
, + ); + expect(largeScreen.find('form').exists()).toEqual(true); + }); +}); diff --git a/src/base-container/tests/BaseContainer.test.jsx b/src/base-container/tests/BaseContainer.test.jsx index e3e8de3e..49b2a666 100644 --- a/src/base-container/tests/BaseContainer.test.jsx +++ b/src/base-container/tests/BaseContainer.test.jsx @@ -2,51 +2,42 @@ import React from 'react'; import { IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; +import { Context as ResponsiveContext } from 'react-responsive'; -import LargeLayout from '../components/default-layout/LargeLayout'; -import MediumLayout from '../components/default-layout/MediumLayout'; -import SmallLayout from '../components/default-layout/SmallLayout'; +import BaseContainer from '../index'; -describe('ScreenLayout', () => { - it('should display the form, pass as a child in SmallScreenLayout', () => { - const smallScreen = mount( +const LargeScreen = { + wrappingComponent: ResponsiveContext.Provider, + wrappingComponentProps: { value: { width: 1200 } }, +}; + +describe('Base component tests', () => { + it('should should default layout', () => { + const baseContainer = mount( -
- -
- -
-
+
, + LargeScreen, ); - expect(smallScreen.find('form').exists()).toEqual(true); + + expect(baseContainer.find('.banner__image').exists()).toBeFalsy(); + expect(baseContainer.find('.large-screen-svg-primary').exists()).toBeTruthy(); }); - it('should display the form, pass as a child in MediumScreenLayout', () => { - const mediumScreen = mount( - -
- -
- -
-
-
, - ); - expect(mediumScreen.find('form').exists()).toEqual(true); - }); + it('[experiment] should show image layout for treatment group', () => { + window.experiments = { + rebrandExperiment: { + variation: 'image-layout', + }, + }; - it('should display the form, pass as a child in LargeScreenLayout', () => { - const largeScreen = mount( + const baseContainer = mount( -
- -
- -
-
+
, + LargeScreen, ); - expect(largeScreen.find('form').exists()).toEqual(true); + + expect(baseContainer.find('.banner__image').exists()).toBeTruthy(); }); }); diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 9a59890b..1838db6c 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -1,9 +1,11 @@ { "start.learning": "ابدأ التعلم ", "with.site.name": "مع {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "أهلا بك {username} في {siteName}", "complete.your.profile.1": "أكمل", "complete.your.profile.2": "ملفك الشخصي", - "welcome.to.platform": "أهلا بك {username} في {siteName}", "institution.login.page.sub.heading": "اختر مؤسستك من القائمة أدناه", "logistration.sign.in": "تسجيل الدخول", "logistration.register": "التسجيل", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/de_DE.json b/src/i18n/messages/de_DE.json index dfb19ce0..8f35818f 100644 --- a/src/i18n/messages/de_DE.json +++ b/src/i18n/messages/de_DE.json @@ -1,9 +1,11 @@ { "start.learning": "Beginne zu lernen", "with.site.name": "mit {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Willkommen bei {siteName}, {username}!", "complete.your.profile.1": "Vervollständige", "complete.your.profile.2": "dein Profil", - "welcome.to.platform": "Willkommen bei {siteName}, {username}!", "institution.login.page.sub.heading": "Wählen Sie Ihre Institution aus der folgenden Liste aus", "logistration.sign.in": "Anmelden", "logistration.register": "Registrieren", diff --git a/src/i18n/messages/es_419.json b/src/i18n/messages/es_419.json index fa10fe3f..3dfc87a4 100644 --- a/src/i18n/messages/es_419.json +++ b/src/i18n/messages/es_419.json @@ -1,15 +1,17 @@ { "start.learning": "Empieza a aprender", "with.site.name": "con {siteName}", + "your.career.turning.point": "El punto de inflexión de tu carrera", + "is.here": "es aquí.", + "welcome.to.platform": "¡Bienvenido a {siteName}, {username}!", "complete.your.profile.1": "Completado", "complete.your.profile.2": "tu perfil ", - "welcome.to.platform": "¡Bienvenido a {siteName}, {username}!", "institution.login.page.sub.heading": "Selecciona tu institución de la lista siguiente", "logistration.sign.in": "Iniciar sesión", "logistration.register": "Registrarse", "enterprisetpa.title.heading": "¿Deseas iniciar sesión con tus credenciales de {providerName}?", "enterprisetpa.login.button.text": "Mostrar otras formas de iniciar sesión o de registrarme", - "enterprisetpa.login.button.text.public.account.creation.disabled": "Show me other ways to sign in", + "enterprisetpa.login.button.text.public.account.creation.disabled": "Mostrar otras formas de iniciar sesión", "sso.sign.in.with": "Inicio de sesión con {providerName}", "sso.create.account.using": "Crear una cuenta con {providerName}", "show.password": "Mostrar contraseña", @@ -22,8 +24,8 @@ "login.third.party.auth.account.not.linked": "Te has registrado correctamente en {currentProvider}, pero tu cuenta de {currentProvider} no tiene una cuenta de {platformName} asociada. Para asociar tus cuentas, inicia sesión ahora usando tu contraseña de {platformName}.", "register.third.party.auth.account.not.linked": "¡Has iniciado sesión con éxito en {currentProvider}! Sólo necesitamos un poco más de información antes de que empieces a aprender con {platformName}.", "registration.using.tpa.form.heading": "Termina de crear tu cuenta", - "zendesk.supportTitle": "edX Support", - "zendesk.selectTicketForm": "Please choose your request type:", + "zendesk.supportTitle": "Soporte edX", + "zendesk.selectTicketForm": "Elegir el tipo de solicitud:", "error.notfound.message": "La página que estas buscando no está disponible o hay un error en la URL. Por favor, verifica la URL y vuelve a intentarlo.", "forgot.password.confirmation.message": "Hemos enviado un correo electrónico a {email} con instrucciones para restablecer tu contraseña.\n Si no recibes un mensaje de restablecimiento de contraseña después de 1 minuto, verifica que has introducido\n la dirección de correo electrónico correcta, o comprueba tu carpeta de correo no deseado. Si necesitas más ayuda, {supportLink}.", "forgot.password.page.title": "Olvidé la contraseña | {siteName}", @@ -96,8 +98,8 @@ "password.security.block.body": "Nuestro sistema detectó que su contraseña es vulnerable. Cambie su contraseña para que su cuenta permanezca segura.", "password.security.close.button": "Cerrar", "password.security.redirect.to.reset.password.button": "Restablece tu contraseña", - "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}", + "login.tpa.authentication.failure": "Lo sentimos, no está autorizado para acceder a {platform_name} a través de este canal. Comuníquese con su administrador o gerente de aprendizaje para acceder a {platform_name}.{lineBreak}{lineBreak}Detalles del error:{lineBreak}{errorMessage}", + "progressive.profiling.page.title": "Bienvenido | {siteName}", "progressive.profiling.page.heading": "Unas cuantas preguntas para ti nos ayudarán a mejorar.", "optional.fields.information.link": "Aprende más sobre cómo usamos esta información.", "optional.fields.submit.button": "Enviar", @@ -141,7 +143,7 @@ "registration.request.server.error": "Se ha producido un error. Intenta actualizar la página o comprueba tu conexión a Internet.", "registration.rate.limit.error": "Demasiados intentos de registro fallidos. Vuelve a intentarlo más tarde.", "registration.tpa.session.expired": "Inscripción usando {provider} ha expirado.", - "registration.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}", + "registration.tpa.authentication.failure": "Lo sentimos, no está autorizado para acceder a {platform_name} a través de este canal. Comuníquese con su administrador o gerente de aprendizaje para acceder a {platform_name}.{lineBreak}{lineBreak}Detalles del error:{lineBreak}{errorMessage}", "terms.of.service.and.honor.code": "Condiciones de servicio y código de honor", "privacy.policy": "Política de privacidad ", "honor.code": "Código de Honor", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 9d404a8c..ec6a8e73 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -1,9 +1,11 @@ { "start.learning": "Démarrer l'apprentissage", "with.site.name": "avec {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Bienvenue sur {siteName}, {username}!", "complete.your.profile.1": "Terminé", "complete.your.profile.2": "votre profil", - "welcome.to.platform": "Bienvenue sur {siteName}, {username}!", "institution.login.page.sub.heading": "Sélectionner votre institution dans la liste ci-dessous", "logistration.sign.in": "Connectez-vous", "logistration.register": "S'inscrire", diff --git a/src/i18n/messages/fr_CA.json b/src/i18n/messages/fr_CA.json index f7e1cb9c..3f2ac7ae 100644 --- a/src/i18n/messages/fr_CA.json +++ b/src/i18n/messages/fr_CA.json @@ -1,9 +1,11 @@ { "start.learning": "Démarrer l'apprentissage", "with.site.name": "avec {siteName}", + "your.career.turning.point": "Votre tournant de carrière", + "is.here": "est là.", + "welcome.to.platform": "Bienvenue sur {siteName}, {username}!", "complete.your.profile.1": "Complet", "complete.your.profile.2": "votre profil", - "welcome.to.platform": "Bienvenue sur {siteName}, {username}!", "institution.login.page.sub.heading": "Sélectionner votre institution dans la liste ci-dessous", "logistration.sign.in": "Connexion", "logistration.register": "Inscription", diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/hi.json +++ b/src/i18n/messages/hi.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/it.json +++ b/src/i18n/messages/it.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/it_IT.json b/src/i18n/messages/it_IT.json index 60493f93..a7bb6256 100644 --- a/src/i18n/messages/it_IT.json +++ b/src/i18n/messages/it_IT.json @@ -1,9 +1,11 @@ { "start.learning": "Inizia a imparare", "with.site.name": "con {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Benvenuto in {siteName}, {username}!", "complete.your.profile.1": "Completata", "complete.your.profile.2": "Il tuo profilo", - "welcome.to.platform": "Benvenuto in {siteName}, {username}!", "institution.login.page.sub.heading": "Scegli il tuo istituto dall'elenco sottostante", "logistration.sign.in": "Accedi", "logistration.register": "Registrazione", diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/pt.json +++ b/src/i18n/messages/pt.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/pt_PT.json b/src/i18n/messages/pt_PT.json index cfe4305a..1aae85cb 100644 --- a/src/i18n/messages/pt_PT.json +++ b/src/i18n/messages/pt_PT.json @@ -1,9 +1,11 @@ { "start.learning": "Começar a aprender", "with.site.name": "com {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Bem vindo a {siteName}, {username}!", "complete.your.profile.1": "Concluído", "complete.your.profile.2": "o seu perfil", - "welcome.to.platform": "Bem vindo a {siteName}, {username}!", "institution.login.page.sub.heading": "Escolha a sua instituição a partir da lista abaixo", "logistration.sign.in": "Iniciar sessão", "logistration.register": "Registe-se", diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/ru.json +++ b/src/i18n/messages/ru.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/uk.json b/src/i18n/messages/uk.json index b0300d82..77cb2657 100644 --- a/src/i18n/messages/uk.json +++ b/src/i18n/messages/uk.json @@ -1,9 +1,11 @@ { "start.learning": "Start learning", "with.site.name": "with {siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "is here.", + "welcome.to.platform": "Welcome to {siteName}, {username}!", "complete.your.profile.1": "Complete", "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", "institution.login.page.sub.heading": "Choose your institution from the list below", "logistration.sign.in": "Sign in", "logistration.register": "Register", diff --git a/src/i18n/messages/zh_CN.json b/src/i18n/messages/zh_CN.json index b0300d82..e5c3f302 100644 --- a/src/i18n/messages/zh_CN.json +++ b/src/i18n/messages/zh_CN.json @@ -1,168 +1,170 @@ { - "start.learning": "Start learning", - "with.site.name": "with {siteName}", - "complete.your.profile.1": "Complete", - "complete.your.profile.2": "your profile", - "welcome.to.platform": "Welcome to {siteName}, {username}!", - "institution.login.page.sub.heading": "Choose your institution from the list below", - "logistration.sign.in": "Sign in", - "logistration.register": "Register", - "enterprisetpa.title.heading": "Would you like to sign in using your {providerName} credentials?", - "enterprisetpa.login.button.text": "Show me other ways to sign in or register", - "enterprisetpa.login.button.text.public.account.creation.disabled": "Show me other ways to sign in", - "sso.sign.in.with": "Sign in with {providerName}", - "sso.create.account.using": "Create account using {providerName}", - "show.password": "Show password", - "hide.password": "Hide password", - "one.letter": "1 letter", - "one.number": "1 number", - "eight.characters": "8 characters", - "password.sr.only.helping.text": "Password must contain at least 8 characters, at least one letter, and at least one number", - "tpa.alert.heading": "Almost done!", - "login.third.party.auth.account.not.linked": "You have successfully signed into {currentProvider}, but your {currentProvider} account does not have a linked {platformName} account. To link your accounts, sign in now using your {platformName} password.", - "register.third.party.auth.account.not.linked": "You've successfully signed into {currentProvider}! We just need a little more information before you start learning with {platformName}.", - "registration.using.tpa.form.heading": "Finish creating your account", + "start.learning": "开始学习", + "with.site.name": "{siteName}", + "your.career.turning.point": "Your career turning point", + "is.here": "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 Support", "zendesk.selectTicketForm": "Please choose your request type:", - "error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.", - "forgot.password.confirmation.message": "We sent an email to {email} with instructions to reset your password.\n If you do not receive a password reset message after 1 minute, verify that you entered\n the correct email address, or check your spam folder. If you need further assistance, {supportLink}.", - "forgot.password.page.title": "Forgot Password | {siteName}", - "forgot.password.page.heading": "Reset password", - "forgot.password.page.instructions": "Please enter your email address below and we will send you an email with instructions on how to reset your password.", - "forgot.password.page.invalid.email.message": "Enter a valid email address", - "forgot.password.page.email.field.label": "Email", - "forgot.password.page.submit.button": "Submit", - "forgot.password.error.alert.title.": "We were unable to contact you.", - "forgot.password.error.message.title": "An error occurred.", - "forgot.password.request.in.progress.message": "Your previous request is in progress, please try again in a few moments.", - "forgot.password.empty.email.field.error": "Enter your email", - "forgot.password.email.help.text": "The email address you used to register with {platformName}", - "confirmation.message.title": "Check your email", - "confirmation.support.link": "contact technical support", - "need.help.sign.in.text": "Need help signing in?", - "additional.help.text": "For additional help, contact {platformName} support at ", - "sign.in.text": "Sign in", - "extend.field.errors": "{emailError} below.", - "invalid.token.heading": "Invalid password reset link", - "invalid.token.error.message": "This password reset link is invalid. It may have been used already. Enter your email below to receive a new link.", - "token.validation.rate.limit.error.heading": "Too many requests", - "token.validation.rate.limit.error": "An error has occurred because of too many requests. Please try again after some time.", - "token.validation.internal.sever.error.heading": "Token validation failure", - "token.validation.internal.sever.error": "An error has occurred. Try refreshing the page, or check your internet connection.", - "internal.server.error": "An error has occurred. Try refreshing the page, or check your internet connection.", - "account.activation.error.message": "Something went wrong, please {supportLink} to resolve this issue.", - "login.inactive.user.error": "In order to sign in, you need to activate your account.{lineBreak}\n {lineBreak}We just sent an activation link to {email}. If you do not receive an email,\n check your spam folders or {supportLink}.", - "allowed.domain.login.error": "As {allowedDomain} user, You must login with your {allowedDomain} {tpaLink}.", - "login.incorrect.credentials.error.attempts.text.1": "The username, email or password you entered is incorrect. You have {remainingAttempts} more sign in\n attempts before your account is temporarily locked.", - "login.incorrect.credentials.error.attempts.text.2": "If you've forgotten your password, {resetLink}", - "account.locked.out.message.2": "To be on the safe side, you can {resetLink} before trying again.", - "login.incorrect.credentials.error.with.reset.link": "The username, email, or password you entered is incorrect. Please try again or {resetLink}.", - "login.page.title": "Login | {siteName}", - "login.user.identity.label": "Username or email", - "login.password.label": "Password", - "sign.in.button": "Sign in", - "forgot.password": "Forgot password", - "institution.login.button": "Institution/campus credentials", - "institution.login.page.title": "Sign in with institution/campus credentials", - "login.other.options.heading": "Or sign in with:", - "non.compliant.password.title": "We recently changed our password requirements", - "non.compliant.password.message": "Your current password does not meet the new security requirements. We just sent a password-reset message to the email address associated with this account. Thank you for helping us keep your data safe.", - "account.locked.out.message.1": "To protect your account, it's been temporarily locked. Try again in 30 minutes.", - "enterprise.login.btn.text": "Company or school credentials", - "username.or.email.format.validation.less.chars.message": "Username or email must have at least 3 characters.", - "email.validation.message": "Enter your username or email", - "password.validation.message": "Password criteria has not been met", - "account.activation.success.message.title": "Success! You have activated your account.", - "account.activation.success.message": "You will now receive email updates and alerts from us related to the courses you are enrolled in. Sign in to continue.", - "account.activation.info.message": "This account has already been activated.", - "account.activation.error.message.title": "Your account could not be activated", - "account.activation.support.link": "contact support", - "account.confirmation.success.message.title": "Success! You have confirmed your email.", - "account.confirmation.success.message": "Sign in to continue.", - "account.confirmation.info.message": "This email has already been confirmed.", - "account.confirmation.error.message.title": "Your email could not be confirmed", - "tpa.account.link": "{provider} account", - "internal.server.error.message": "An error has occurred. Try refreshing the page, or check your internet connection.", - "login.rate.limit.reached.message": "Too many failed login attempts. Try again later.", - "login.failure.header.title": "We couldn't sign you in.", - "contact.support.link": "contact {platformName} support", - "login.incorrect.credentials.error": "The username, email, or password you entered is incorrect. Please try again.", - "login.form.invalid.error.message": "Please fill in the fields below.", - "login.incorrect.credentials.error.reset.link.text": "reset your password", - "login.incorrect.credentials.error.before.account.blocked.text": "click here to reset it.", - "password.security.nudge.title": "Password security", - "password.security.block.title": "Password change required", - "password.security.nudge.body": "Our system detected that your password is vulnerable. We recommend you change it so that your account stays secure.", - "password.security.block.body": "Our system detected that your password is vulnerable. Change your password so that your account stays secure.", - "password.security.close.button": "Close", - "password.security.redirect.to.reset.password.button": "Reset your password", + "error.notfound.message": "您访问的地址不存在或有误。请检查URL后重新尝试访问。", + "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": "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.heading": "A few questions for you will help us get smarter.", - "optional.fields.information.link": "Learn more about how we use this information.", - "optional.fields.submit.button": "Submit", - "optional.fields.skip.button": "Skip for now", - "optional.fields.next.button": "Next", - "continue.to.platform": "Continue to {platformName}", - "modal.title": "Thanks for letting us know.", - "modal.description": "You can complete your profile in settings at any time if you change your mind.", - "welcome.page.error.heading": "We couldn't update your profile", - "welcome.page.error.message": "An error occurred. You can complete your profile in settings at any time.", - "recommendation.page.title": "Recommendations | {siteName}", - "recommendation.page.heading": "We have a few recommendations to get you started.", - "recommendation.skip.button": "Skip for now", - "register.page.title": "Register | {siteName}", - "registration.fullname.label": "Full name", - "registration.email.label": "Email", - "registration.username.label": "Public username", - "registration.password.label": "Password", - "registration.country.label": "Country/Region", - "registration.opt.in.label": "I agree that {siteName} may send me marketing messages.", - "help.text.name": "This name will be used by any certificates that you earn.", - "help.text.username.1": "The name that will identify you in your courses.", - "help.text.username.2": "This can not be changed later.", - "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:", - "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", - "empty.email.field.error": "Enter your email", - "empty.username.field.error": "Username must be between 2 and 30 characters", - "empty.password.field.error": "Password criteria has not been met", - "empty.country.field.error": "Select your country or region of residence", - "email.do.not.match": "The email addresses do not match.", - "email.invalid.format.error": "Enter a valid email address", - "username.validation.message": "Username must be between 2 and 30 characters", - "name.validation.message": "Enter a valid name", - "username.format.validation.message": "Usernames can only contain letters (A-Z, a-z), numerals (0-9), underscores (_), and hyphens (-). Usernames cannot contain spaces", - "registration.request.failure.header": "We couldn't create your account.", - "registration.empty.form.submission.error": "Please check your responses and try again.", - "registration.request.server.error": "An error has occurred. Try refreshing the page, or check your internet connection.", - "registration.rate.limit.error": "Too many failed registration attempts. Try again later.", - "registration.tpa.session.expired": "Registration using {provider} has timed out.", + "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": "暂时跳过", + "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": "或注册:", + "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": "用户名只能包含字母(AZ、az)、数字(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": "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}", - "terms.of.service.and.honor.code": "Terms of Service and Honor Code", - "privacy.policy": "Privacy Policy", - "honor.code": "Honor Code", - "terms.of.service": "Terms of Service", - "registration.username.suggestion.label": "Suggested:", - "did.you.mean.alert.text": "Did you mean", - "register.page.terms.of.service.and.honor.code": "By creating an account, you agree to the {tosAndHonorCode} and you acknowledge that {platformName} and each\n Member process your personal data in accordance with the {privacyPolicy}.", - "register.page.honor.code": "I agree to the {platformName} {tosAndHonorCode}", - "register.page.terms.of.service": "I agree to the {platformName} {termsOfService}", - "sign.in": "Sign in", - "reset.password.page.title": "Reset Password | {siteName}", - "reset.password": "Reset password", - "reset.password.page.instructions": "Enter and confirm your new password.", - "new.password.label": "New password", - "confirm.password.label": "Confirm password", - "passwords.do.not.match": "Passwords do not match", - "confirm.your.password": "Confirm your password", - "reset.password.failure.heading": "We couldn't reset your password.", - "reset.password.form.submission.error": "Please check your responses and try again.", - "reset.server.rate.limit.error": "Too many requests.", - "reset.password.success.heading": "Password reset complete.", - "reset.password.success": "Your password has been reset. Sign in to your account.", - "rate.limit.error": "An error has occurred because of too many requests. Please try again after some time." + "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