Compare commits

...

21 Commits

Author SHA1 Message Date
mashal-m
891d123f84 fix: update lock file 2022-12-14 14:49:22 +05:00
mashal-m
d9831b4dc7 fix: update lock file 2022-12-13 16:27:33 +05:00
mashal-m
f8215e3e46 build: major paragon version upgrade 2022-12-13 16:19:19 +05:00
Ghassan Maslamani
edba1600dc fix: fix tabs urls on progress tab
This fix does fixes the url links by getting them from the state
 simliar to how tabs navigation gets them.

 This would allow it work for PUBLIC_PATH is not '/', i.e. in
 tutor.

  This was reported in openedx/build-test-release-wg/issues/222
2022-12-07 17:55:15 +00:00
Jenkins
9a07ad1501 chore(i18n): update translations 2022-12-04 16:04:31 -05:00
Awais Ansari
b343ca7a74 Revert "Revert "fix: remove minHeight from in-context discussion sidebar (#1002)" (#1003)" (#1007)
This reverts commit ba06fd7c98.
2022-12-01 14:17:18 +05:00
Abdullah Waheed
b6d272e99d feat: added new translations in Makefile and updated all the translations 2022-11-30 13:31:18 +00:00
Mubbshar Anwar
0fbb53ae86 fix: update event name (#1004)
update segment event name

VAN-1168
2022-11-23 11:24:20 +05:00
Awais Ansari
ba06fd7c98 Revert "fix: remove minHeight from in-context discussion sidebar (#1002)" (#1003)
This reverts commit 9396fbd9d4.
2022-11-18 18:22:35 +05:00
Awais Ansari
9396fbd9d4 fix: remove minHeight from in-context discussion sidebar (#1002) 2022-11-17 20:59:50 +05:00
Abderraouf Mehdi Bouhali
57d880de70 fix(rtl): mirror new user tour modal background
Mirrors the background image used in the new user tour modal
as it obstructs the readability of the modal title when in RTL
2022-11-07 16:04:17 +00:00
Abderraouf Mehdi Bouhali
bfad5cf684 fix(rtl): use backslash to write fractions (grades) 2022-11-07 16:03:56 +00:00
Jenkins
b0378e1331 chore(i18n): update translations 2022-11-06 16:04:22 -05:00
Andrew Shultz
19d06d60be fix: display onboarding expired after expiration (#997)
Currently expiring soon is displayed 28 days before expiration
and forever afterwards. Adds an actual expired state for after.

Also clarifies the expring soon message which assumed other course,
that was not necessarily true.

Also updates the take action lines when you do not have valid
onboarding to make sure they appear for everything not currently valid
or in process, and updates the submitted process lines to not appear
for expired statuses.
2022-11-03 09:26:42 -04:00
Zachary Hancock
df91fef82e feat: update special exams lib (#992) 2022-10-31 11:49:24 -04:00
Jenkins
7e53ddb685 chore(i18n): update translations 2022-10-30 17:09:24 -04:00
Diana Olarte
be72e36a3a feat: allow runtime configuration (#955)
Allows frontend-app-learning to be configured at
runtime using the LMS's new MFE Configuration API.

Part of openedx/frontend-wg#103
2022-10-27 10:01:43 -04:00
Abderraouf Mehdi Bouhali
fa5cf8f204 fix(rtl): force (%) symbol to follow text direction 2022-10-26 10:31:53 -03:00
Jenkins
759d154e13 chore(i18n): update translations 2022-10-19 05:08:31 -04:00
Abderraouf Mehdi Bouhali
7c4200e9d3 fix(rtl): mirror position of grade rectangles in grade bar (#980)
Translates the rectangles for current and passing
grades when to appear on the right when in RTL.
2022-10-14 12:49:37 -04:00
Kshitij Sobti
e5e73e40ba feat: update discussion sidebar url to allow grouping by subsection (#968)
To enable grouping by subsection in the discussions MFE, this PR updates
the embed URL to the one that supports grouping.

ref: https://github.com/openedx/frontend-app-discussions/pull/281
2022-10-12 17:57:42 +05:00
53 changed files with 4595 additions and 831 deletions

View File

@@ -1,5 +1,5 @@
export TRANSIFEX_RESOURCE=frontend-app-learning
transifex_langs = "ar,fr,es_419,zh_CN"
transifex_langs = "ar,fr,es_419,zh_CN,pt,it,de,uk,ru,hi,fr_CA"
transifex_utils = ./node_modules/.bin/transifex-utils.js
i18n = ./src/i18n

1319
package-lock.json generated
View File

@@ -10,11 +10,11 @@
"license": "AGPL-3.0",
"dependencies": {
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
"@edx/frontend-component-footer": "10.2.4",
"@edx/frontend-component-header": "2.4.6",
"@edx/frontend-lib-special-exams": "1.16.3",
"@edx/frontend-platform": "1.15.6",
"@edx/paragon": "19.18.3",
"@edx/frontend-component-footer": "11.1.0",
"@edx/frontend-component-header": "3.1.0",
"@edx/frontend-lib-special-exams": "2.1.0",
"@edx/frontend-platform": "2.5.1",
"@edx/paragon": "^20.20.0",
"@fortawesome/fontawesome-svg-core": "1.3.0",
"@fortawesome/free-brands-svg-icons": "5.15.4",
"@fortawesome/free-regular-svg-icons": "5.15.4",
@@ -3056,9 +3056,9 @@
}
},
"node_modules/@edx/frontend-component-footer": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-10.2.4.tgz",
"integrity": "sha512-kmNHL+D4ieB2VGhJ+Hf/Oa07NvmHJqyuSRWHMIph83GXhGh1EfZkmQPw6w7Z1TxLWaKQMr1HfZnQ1+Tz/nNAjQ==",
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-11.1.0.tgz",
"integrity": "sha512-cbcUj3we2whEDQl1GkVcSrfVmD7xFyVCKO9MwCVZyXiSGbymHxEc0A+LuCkZAY22kmOkv5SG9H3rmG1qG7DIeQ==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -3067,7 +3067,7 @@
"@fortawesome/react-fontawesome": "0.1.18"
},
"peerDependencies": {
"@edx/frontend-platform": "^1.8.0",
"@edx/frontend-platform": "^2.3.0",
"prop-types": "^15.5.10",
"react": "^16.9.0",
"react-dom": "^16.9.0"
@@ -3086,9 +3086,9 @@
}
},
"node_modules/@edx/frontend-component-header": {
"version": "2.4.6",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-2.4.6.tgz",
"integrity": "sha512-bwEP3B37N4lIDPM4cz/Dg1egQHWf14qj+3VU44BOf5DC/bNhASKeeEJEvDn6XTZdFCpGioHRBtqlEJQJsp0WqA==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-3.1.0.tgz",
"integrity": "sha512-HeeEzgH7BAeVldAoyNMri+02c4fQdx6FY16S4pinJYVmHoK+xcUf4mw2ESUk3XyAhFUmC77tjLF+EHE20WsReA==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -3100,7 +3100,7 @@
"react-transition-group": "4.4.2"
},
"peerDependencies": {
"@edx/frontend-platform": "^1.8.0",
"@edx/frontend-platform": "^2.0.0",
"@edx/paragon": ">= 7.0.0 < 20.0.0",
"prop-types": "^15.5.10",
"react": "^16.9.0",
@@ -3120,9 +3120,9 @@
}
},
"node_modules/@edx/frontend-lib-special-exams": {
"version": "1.16.3",
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-1.16.3.tgz",
"integrity": "sha512-i88xa/msZgh1vgcgTSihG19C+gQcG9AUsxzuamtKKA8swBtK5cDyknsE7XY4RB5z1IE1Wj1x4Bpi4DS6bxBkiQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-2.1.0.tgz",
"integrity": "sha512-ODx9czIZ6JXB48nUWn6W2lwiFwSV3SzU/6Gtp11EIWqBLNU0owPib7dibinsQGJXOygjZ0aX6V5gFyCUjPMagw==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.34",
"@fortawesome/free-brands-svg-icons": "5.11.2",
@@ -3133,7 +3133,7 @@
"eventemitter3": "^4.0.7"
},
"peerDependencies": {
"@edx/frontend-platform": "^1.8.4",
"@edx/frontend-platform": "^2.3.0",
"@edx/paragon": "^19.14.1",
"@reduxjs/toolkit": "^1.5.1",
"prop-types": "^15.7.2",
@@ -3203,11 +3203,13 @@
}
},
"node_modules/@edx/frontend-platform": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-1.15.6.tgz",
"integrity": "sha512-hvcJwRLy4JBdyBjHgu11nrqmMTWI901q6Ax83pf+yQpz68PpsJ0KdFjerxnkNJjU//XrWUuhSLesOPY2ntIjjg==",
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.5.1.tgz",
"integrity": "sha512-iBnfo502VTnQnFM7G2PK6S9FTUQEExqIIw5Y6cFC/BbEzeMaD2rFW68IBrH8FMUZ1MeUCw4l0gV7WqydUtFoYA==",
"dependencies": {
"@cospired/i18n-iso-languages": "2.2.0",
"@formatjs/intl-pluralrules": "4.3.3",
"@formatjs/intl-relativetimeformat": "10.0.1",
"axios": "0.26.1",
"axios-cache-adapter": "2.7.3",
"form-urlencoded": "4.1.4",
@@ -3222,15 +3224,14 @@
"lodash.merge": "4.6.2",
"lodash.snakecase": "4.1.1",
"pubsub-js": "1.9.4",
"react-intl": "2.9.0",
"react-intl": "^5.25.0",
"universal-cookie": "4.0.4"
},
"bin": {
"transifex-Makefile": "i18n/scripts/Makefile",
"transifex-utils.js": "i18n/scripts/transifex-utils.js"
},
"peerDependencies": {
"@edx/paragon": ">= 10.0.0 < 20.0.0",
"@edx/paragon": ">= 10.0.0 < 21.0.0",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
@@ -3260,22 +3261,6 @@
"value-equal": "^1.0.1"
}
},
"node_modules/@edx/frontend-platform/node_modules/react-intl": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
"integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==",
"dependencies": {
"hoist-non-react-statics": "^3.3.0",
"intl-format-cache": "^2.0.5",
"intl-messageformat": "^2.1.0",
"intl-relativeformat": "^2.1.0",
"invariant": "^2.1.1"
},
"peerDependencies": {
"prop-types": "^15.5.4",
"react": "^0.14.9 || ^15.0.0 || ^16.0.0"
}
},
"node_modules/@edx/new-relic-source-map-webpack-plugin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@edx/new-relic-source-map-webpack-plugin/-/new-relic-source-map-webpack-plugin-1.0.1.tgz",
@@ -3286,35 +3271,96 @@
}
},
"node_modules/@edx/paragon": {
"version": "19.18.3",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.18.3.tgz",
"integrity": "sha512-nG+17daC72qbMlLmIRegXVCylmVdQEPcA6ELg9VSVSgWP+xnQgBx/th0z0fyzp5hr5opesg2TM6azFg+nDTKZw==",
"version": "20.20.0",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.20.0.tgz",
"integrity": "sha512-spoEuQgRA0pf4Lg3O9a5qjePbf9dWlg206+l5WPNZtDVdBzqoxFdn9vL47GPNJRP4ksHfpTDLdmIkgX7t1TngQ==",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@popperjs/core": "^2.11.4",
"airbnb-prop-types": "^2.12.0",
"bootstrap": "^4.6.1",
"bootstrap": "^4.6.2",
"classnames": "^2.3.1",
"email-prop-type": "^3.0.0",
"file-selector": "^0.6.0",
"font-awesome": "^4.7.0",
"glob": "^8.0.3",
"lodash.uniqby": "^4.7.0",
"mailto-link": "^1.0.0",
"mailto-link": "^2.0.0",
"prop-types": "^15.8.1",
"react-bootstrap": "^1.6.4",
"react-bootstrap": "^1.6.5",
"react-dropzone": "^14.2.1",
"react-focus-on": "^3.5.4",
"react-loading-skeleton": "^3.1.0",
"react-popper": "^2.2.5",
"react-proptype-conditional-require": "^1.0.4",
"react-responsive": "^8.2.0",
"react-table": "^7.7.0",
"react-transition-group": "^4.4.2",
"tabbable": "^4.0.0",
"tabbable": "^5.3.3",
"uncontrollable": "^7.2.1"
},
"peerDependencies": {
"prop-types": "^15.7.2",
"react": "^16.8.6",
"react-dom": "^16.8.6"
"react": "^16.8.6 || ^17.0.0",
"react-dom": "^16.8.6 || ^17.0.0",
"react-intl": "^5.25.1"
}
},
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz",
"integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==",
"hasInstallScript": true,
"engines": {
"node": ">=6"
}
},
"node_modules/@edx/paragon/node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz",
"integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==",
"hasInstallScript": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.2.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@edx/paragon/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@edx/paragon/node_modules/glob": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^5.0.1",
"once": "^1.3.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@edx/paragon/node_modules/minimatch": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@edx/reactifex": {
@@ -3372,6 +3418,149 @@
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
"dev": true
},
"node_modules/@formatjs/fast-memoize": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
"integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/fast-memoize/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/icu-messageformat-parser": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
"integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/icu-skeleton-parser": "1.3.6",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/icu-messageformat-parser/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/icu-skeleton-parser": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
"integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/icu-skeleton-parser/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
"integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/fast-memoize": "1.2.1",
"@formatjs/icu-messageformat-parser": "2.1.0",
"@formatjs/intl-displaynames": "5.4.3",
"@formatjs/intl-listformat": "6.5.3",
"intl-messageformat": "9.13.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"typescript": "^4.5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@formatjs/intl-displaynames": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
"integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-displaynames/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-displaynames/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl-listformat": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
"integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-listformat/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-listformat/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl-localematcher": {
"version": "0.2.25",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
"integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-localematcher/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl-numberformat": {
"version": "5.7.6",
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
@@ -3397,6 +3586,68 @@
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
"dev": true
},
"node_modules/@formatjs/intl-pluralrules": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz",
"integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-pluralrules/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-pluralrules/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl-relativetimeformat": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz",
"integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-relativetimeformat/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl-relativetimeformat/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/intl/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/@formatjs/intl/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/@formatjs/ts-transformer": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
@@ -4580,9 +4831,9 @@
}
},
"node_modules/@restart/hooks": {
"version": "0.3.27",
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz",
"integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==",
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
"integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
"dependencies": {
"dequal": "^2.0.2"
},
@@ -5649,9 +5900,9 @@
}
},
"node_modules/@types/react-transition-group": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
"integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
"version": "4.4.5",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
"dependencies": {
"@types/react": "*"
}
@@ -5791,7 +6042,7 @@
"node_modules/@types/warning": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
"integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
"integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
},
"node_modules/@types/webpack": {
"version": "4.41.32",
@@ -6201,28 +6452,6 @@
"node": ">=8"
}
},
"node_modules/airbnb-prop-types": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
"integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
"dependencies": {
"array.prototype.find": "^2.1.1",
"function.prototype.name": "^1.1.2",
"is-regex": "^1.1.0",
"object-is": "^1.1.2",
"object.assign": "^4.1.0",
"object.entries": "^1.1.2",
"prop-types": "^15.7.2",
"prop-types-exact": "^1.2.0",
"react-is": "^16.13.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
},
"peerDependencies": {
"react": "^0.14 || ^15.0.0 || ^16.0.0-alpha"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -6555,19 +6784,6 @@
"node": ">=0.10.0"
}
},
"node_modules/array.prototype.find": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz",
"integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/array.prototype.flat": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
@@ -6588,7 +6804,7 @@
"node_modules/assert-ok": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
},
"node_modules/assign-symbols": {
"version": "1.0.0",
@@ -6665,6 +6881,14 @@
"node": ">=8.0.0"
}
},
"node_modules/attr-accept": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
"integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==",
"engines": {
"node": ">=4"
}
},
"node_modules/autoprefixer": {
"version": "10.2.6",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
@@ -7827,13 +8051,19 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"node_modules/bootstrap": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz",
"integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
},
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
}
],
"peerDependencies": {
"jquery": "1.9.1 - 3",
"popper.js": "^1.16.1"
@@ -8197,7 +8427,7 @@
"node_modules/cast-array": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
"dependencies": {
"isarray": "0.0.1"
}
@@ -9798,9 +10028,9 @@
}
},
"node_modules/dequal": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
"integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"engines": {
"node": ">=6"
}
@@ -11777,6 +12007,22 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
"node_modules/file-selector": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
"integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
"dependencies": {
"tslib": "^2.4.0"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/file-selector/node_modules/tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/file-type": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
@@ -12374,37 +12620,12 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/function.prototype.name": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.0",
"functions-have-names": "^1.2.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
"node_modules/functions-have-names": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
"integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -14191,34 +14412,31 @@
"node": ">= 0.10"
}
},
"node_modules/intl-format-cache": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz",
"integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ=="
},
"node_modules/intl-messageformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
"version": "9.13.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
"integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
"dependencies": {
"intl-messageformat-parser": "1.4.0"
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/fast-memoize": "1.2.1",
"@formatjs/icu-messageformat-parser": "2.1.0",
"tslib": "^2.1.0"
}
},
"node_modules/intl-messageformat-parser": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=",
"deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser"
},
"node_modules/intl-relativeformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz",
"integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==",
"deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'",
"node_modules/intl-messageformat/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"intl-messageformat": "^2.0.0"
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/intl-messageformat/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/into-stream": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
@@ -18639,12 +18857,6 @@
"node": ">=6"
}
},
"node_modules/jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
"peer": true
},
"node_modules/js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@@ -19288,25 +19500,42 @@
}
},
"node_modules/mailto-link": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
"dependencies": {
"assert-ok": "~1.0.0",
"cast-array": "~1.0.0",
"cast-array": "~1.0.1",
"object-filter": "~1.0.2",
"query-string": "~2.4.1"
"query-string": "~7.0.0"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/mailto-link/node_modules/query-string": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
"dependencies": {
"strict-uri-encode": "^1.0.0"
"decode-uri-component": "^0.2.0",
"filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/mailto-link/node_modules/strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
"engines": {
"node": ">=4"
}
},
"node_modules/make-dir": {
@@ -20042,7 +20271,7 @@
"node_modules/object-filter": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
"integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
"integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA=="
},
"node_modules/object-inspect": {
"version": "1.12.0",
@@ -20056,6 +20285,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3"
@@ -20108,6 +20338,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3",
@@ -21041,17 +21272,6 @@
"node": ">= 8"
}
},
"node_modules/popper.js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/popsicle": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/popsicle/-/popsicle-9.2.0.tgz",
@@ -21794,16 +22014,6 @@
"react-is": "^16.13.1"
}
},
"node_modules/prop-types-exact": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz",
"integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==",
"dependencies": {
"has": "^1.0.3",
"object.assign": "^4.1.0",
"reflect.ownkeys": "^0.2.0"
}
},
"node_modules/prop-types-extra": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
@@ -21996,13 +22206,13 @@
}
},
"node_modules/react-bootstrap": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz",
"integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==",
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz",
"integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==",
"dependencies": {
"@babel/runtime": "^7.14.0",
"@restart/context": "^2.1.4",
"@restart/hooks": "^0.3.26",
"@restart/hooks": "^0.4.7",
"@types/invariant": "^2.2.33",
"@types/prop-types": "^15.7.3",
"@types/react": ">=16.14.8",
@@ -22013,7 +22223,7 @@
"invariant": "^2.2.4",
"prop-types": "^15.7.2",
"prop-types-extra": "^1.1.0",
"react-overlays": "^5.1.1",
"react-overlays": "^5.1.2",
"react-transition-group": "^4.4.1",
"uncontrollable": "^7.2.1",
"warning": "^4.0.3"
@@ -22354,6 +22564,22 @@
"react": "^16.14.0"
}
},
"node_modules/react-dropzone": {
"version": "14.2.3",
"resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
"integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
"dependencies": {
"attr-accept": "^2.2.2",
"file-selector": "^0.6.0",
"prop-types": "^15.8.1"
},
"engines": {
"node": ">= 10.13"
},
"peerDependencies": {
"react": ">= 16.8 || 18.0.0"
}
},
"node_modules/react-error-overlay": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
@@ -22426,6 +22652,46 @@
"react": ">=16.3.0"
}
},
"node_modules/react-intl": {
"version": "5.25.1",
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz",
"integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==",
"dependencies": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/icu-messageformat-parser": "2.1.0",
"@formatjs/intl": "2.2.1",
"@formatjs/intl-displaynames": "5.4.3",
"@formatjs/intl-listformat": "6.5.3",
"@types/hoist-non-react-statics": "^3.3.1",
"@types/react": "16 || 17 || 18",
"hoist-non-react-statics": "^3.3.2",
"intl-messageformat": "9.13.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"react": "^16.3.0 || 17 || 18",
"typescript": "^4.5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/react-intl/node_modules/@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"dependencies": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"node_modules/react-intl/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -22436,14 +22702,22 @@
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"node_modules/react-loading-skeleton": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.1.0.tgz",
"integrity": "sha512-j1U1CWWs68nBPOg7tkQqnlFcAMFF6oEK6MgqAo15f8A5p7mjH6xyKn2gHbkcimpwfO0VQXqxAswnSYVr8lWzjw==",
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/react-overlays": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz",
"integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==",
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz",
"integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==",
"dependencies": {
"@babel/runtime": "^7.13.8",
"@popperjs/core": "^2.8.6",
"@restart/hooks": "^0.3.26",
"@popperjs/core": "^2.11.6",
"@restart/hooks": "^0.4.7",
"@types/warning": "^3.0.0",
"dom-helpers": "^5.2.0",
"prop-types": "^15.7.2",
@@ -22455,6 +22729,15 @@
"react-dom": ">=16.3.0"
}
},
"node_modules/react-overlays/node_modules/@popperjs/core": {
"version": "2.11.6",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/react-popper": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz",
@@ -22913,11 +23196,6 @@
"redux": "^4"
}
},
"node_modules/reflect.ownkeys": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz",
"integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
},
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -24677,6 +24955,8 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true,
"optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -25151,9 +25431,9 @@
"dev": true
},
"node_modules/tabbable": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
},
"node_modules/table": {
"version": "5.4.6",
@@ -26014,20 +26294,6 @@
"node": ">=4"
}
},
"node_modules/type-fest": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz",
"integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==",
"dev": true,
"optional": true,
"peer": true,
"engines": {
"node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -26060,7 +26326,7 @@
"version": "4.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
"dev": true,
"devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -29944,9 +30210,9 @@
}
},
"@edx/frontend-component-footer": {
"version": "10.2.4",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-10.2.4.tgz",
"integrity": "sha512-kmNHL+D4ieB2VGhJ+Hf/Oa07NvmHJqyuSRWHMIph83GXhGh1EfZkmQPw6w7Z1TxLWaKQMr1HfZnQ1+Tz/nNAjQ==",
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-11.1.0.tgz",
"integrity": "sha512-cbcUj3we2whEDQl1GkVcSrfVmD7xFyVCKO9MwCVZyXiSGbymHxEc0A+LuCkZAY22kmOkv5SG9H3rmG1qG7DIeQ==",
"requires": {
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -29966,9 +30232,9 @@
}
},
"@edx/frontend-component-header": {
"version": "2.4.6",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-2.4.6.tgz",
"integrity": "sha512-bwEP3B37N4lIDPM4cz/Dg1egQHWf14qj+3VU44BOf5DC/bNhASKeeEJEvDn6XTZdFCpGioHRBtqlEJQJsp0WqA==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-3.1.0.tgz",
"integrity": "sha512-HeeEzgH7BAeVldAoyNMri+02c4fQdx6FY16S4pinJYVmHoK+xcUf4mw2ESUk3XyAhFUmC77tjLF+EHE20WsReA==",
"requires": {
"@fortawesome/fontawesome-svg-core": "1.2.36",
"@fortawesome/free-brands-svg-icons": "5.15.4",
@@ -29991,9 +30257,9 @@
}
},
"@edx/frontend-lib-special-exams": {
"version": "1.16.3",
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-1.16.3.tgz",
"integrity": "sha512-i88xa/msZgh1vgcgTSihG19C+gQcG9AUsxzuamtKKA8swBtK5cDyknsE7XY4RB5z1IE1Wj1x4Bpi4DS6bxBkiQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-2.1.0.tgz",
"integrity": "sha512-ODx9czIZ6JXB48nUWn6W2lwiFwSV3SzU/6Gtp11EIWqBLNU0owPib7dibinsQGJXOygjZ0aX6V5gFyCUjPMagw==",
"requires": {
"@fortawesome/fontawesome-svg-core": "1.2.34",
"@fortawesome/free-brands-svg-icons": "5.11.2",
@@ -30047,11 +30313,13 @@
}
},
"@edx/frontend-platform": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-1.15.6.tgz",
"integrity": "sha512-hvcJwRLy4JBdyBjHgu11nrqmMTWI901q6Ax83pf+yQpz68PpsJ0KdFjerxnkNJjU//XrWUuhSLesOPY2ntIjjg==",
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-2.5.1.tgz",
"integrity": "sha512-iBnfo502VTnQnFM7G2PK6S9FTUQEExqIIw5Y6cFC/BbEzeMaD2rFW68IBrH8FMUZ1MeUCw4l0gV7WqydUtFoYA==",
"requires": {
"@cospired/i18n-iso-languages": "2.2.0",
"@formatjs/intl-pluralrules": "4.3.3",
"@formatjs/intl-relativetimeformat": "10.0.1",
"axios": "0.26.1",
"axios-cache-adapter": "2.7.3",
"form-urlencoded": "4.1.4",
@@ -30066,7 +30334,7 @@
"lodash.merge": "4.6.2",
"lodash.snakecase": "4.1.1",
"pubsub-js": "1.9.4",
"react-intl": "2.9.0",
"react-intl": "^5.25.0",
"universal-cookie": "4.0.4"
},
"dependencies": {
@@ -30090,18 +30358,6 @@
"tiny-warning": "^1.0.0",
"value-equal": "^1.0.1"
}
},
"react-intl": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
"integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==",
"requires": {
"hoist-non-react-statics": "^3.3.0",
"intl-format-cache": "^2.0.5",
"intl-messageformat": "^2.1.0",
"intl-relativeformat": "^2.1.0",
"invariant": "^2.1.1"
}
}
}
},
@@ -30115,30 +30371,76 @@
}
},
"@edx/paragon": {
"version": "19.18.3",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-19.18.3.tgz",
"integrity": "sha512-nG+17daC72qbMlLmIRegXVCylmVdQEPcA6ELg9VSVSgWP+xnQgBx/th0z0fyzp5hr5opesg2TM6azFg+nDTKZw==",
"version": "20.20.0",
"resolved": "https://registry.npmjs.org/@edx/paragon/-/paragon-20.20.0.tgz",
"integrity": "sha512-spoEuQgRA0pf4Lg3O9a5qjePbf9dWlg206+l5WPNZtDVdBzqoxFdn9vL47GPNJRP4ksHfpTDLdmIkgX7t1TngQ==",
"requires": {
"@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@popperjs/core": "^2.11.4",
"airbnb-prop-types": "^2.12.0",
"bootstrap": "^4.6.1",
"bootstrap": "^4.6.2",
"classnames": "^2.3.1",
"email-prop-type": "^3.0.0",
"file-selector": "^0.6.0",
"font-awesome": "^4.7.0",
"glob": "^8.0.3",
"lodash.uniqby": "^4.7.0",
"mailto-link": "^1.0.0",
"mailto-link": "^2.0.0",
"prop-types": "^15.8.1",
"react-bootstrap": "^1.6.4",
"react-bootstrap": "^1.6.5",
"react-dropzone": "^14.2.1",
"react-focus-on": "^3.5.4",
"react-loading-skeleton": "^3.1.0",
"react-popper": "^2.2.5",
"react-proptype-conditional-require": "^1.0.4",
"react-responsive": "^8.2.0",
"react-table": "^7.7.0",
"react-transition-group": "^4.4.2",
"tabbable": "^4.0.0",
"tabbable": "^5.3.3",
"uncontrollable": "^7.2.1"
},
"dependencies": {
"@fortawesome/fontawesome-common-types": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz",
"integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ=="
},
"@fortawesome/fontawesome-svg-core": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz",
"integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==",
"requires": {
"@fortawesome/fontawesome-common-types": "6.2.1"
}
},
"brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"requires": {
"balanced-match": "^1.0.0"
}
},
"glob": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
"integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^5.0.1",
"once": "^1.3.0"
}
},
"minimatch": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz",
"integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==",
"requires": {
"brace-expansion": "^2.0.1"
}
}
}
},
"@edx/reactifex": {
@@ -30191,6 +30493,169 @@
}
}
},
"@formatjs/fast-memoize": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
"integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
"requires": {
"tslib": "^2.1.0"
},
"dependencies": {
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/icu-messageformat-parser": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
"integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/icu-skeleton-parser": "1.3.6",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/icu-skeleton-parser": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
"integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
"integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/fast-memoize": "1.2.1",
"@formatjs/icu-messageformat-parser": "2.1.0",
"@formatjs/intl-displaynames": "5.4.3",
"@formatjs/intl-listformat": "6.5.3",
"intl-messageformat": "9.13.0",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl-displaynames": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
"integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl-listformat": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
"integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl-localematcher": {
"version": "0.2.25",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
"integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
"requires": {
"tslib": "^2.1.0"
},
"dependencies": {
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl-numberformat": {
"version": "5.7.6",
"resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz",
@@ -30218,6 +30683,58 @@
}
}
},
"@formatjs/intl-pluralrules": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.3.3.tgz",
"integrity": "sha512-NLZN8gf2qLpCuc0m565IbKLNUarEGOzk0mkdTkE4XTuNCofzoQTurW6lL3fmDlneAoYl2FiTdHa5q4o2vZF50g==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/intl-relativetimeformat": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-10.0.1.tgz",
"integrity": "sha512-AABPQtPjFilXegQsnmVHrSlzjFNUffAEk5DgowY6b7WSwDI7g2W6QgW903/lbZ58emhphAbgHdtKeUBXqTiLpw==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"@formatjs/ts-transformer": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz",
@@ -31082,9 +31599,9 @@
"requires": {}
},
"@restart/hooks": {
"version": "0.3.27",
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.27.tgz",
"integrity": "sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw==",
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
"integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
"requires": {
"dequal": "^2.0.2"
}
@@ -31922,9 +32439,9 @@
}
},
"@types/react-transition-group": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
"integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
"version": "4.4.5",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
"requires": {
"@types/react": "*"
}
@@ -32062,7 +32579,7 @@
"@types/warning": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
"integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
"integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
},
"@types/webpack": {
"version": "4.41.32",
@@ -32420,22 +32937,6 @@
"indent-string": "^4.0.0"
}
},
"airbnb-prop-types": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
"integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
"requires": {
"array.prototype.find": "^2.1.1",
"function.prototype.name": "^1.1.2",
"is-regex": "^1.1.0",
"object-is": "^1.1.2",
"object.assign": "^4.1.0",
"object.entries": "^1.1.2",
"prop-types": "^15.7.2",
"prop-types-exact": "^1.2.0",
"react-is": "^16.13.1"
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -32677,16 +33178,6 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true
},
"array.prototype.find": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.2.tgz",
"integrity": "sha512-00S1O4ewO95OmmJW7EesWfQlrCrLEL8kZ40w3+GkLX2yTt0m2ggcePPa2uHPJ9KUmJvwRq+lCV9bD8Yim23x/Q==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.0"
}
},
"array.prototype.flat": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
@@ -32701,7 +33192,7 @@
"assert-ok": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-ok/-/assert-ok-1.0.0.tgz",
"integrity": "sha1-W1z3lfknXFnHFNZsOgbX3nDkPsg="
"integrity": "sha512-lCvYmCpMl8c1tp9ynExhoDEk0gGW43SVVC3RE1VYrrVKhNMy8GHfdiwZdoIM6a605s56bUAbENQxtOC0uZp3wg=="
},
"assign-symbols": {
"version": "1.0.0",
@@ -32760,6 +33251,11 @@
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
"dev": true
},
"attr-accept": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
"integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
},
"autoprefixer": {
"version": "10.2.6",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
@@ -33702,9 +34198,9 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"bootstrap": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz",
"integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==",
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
"requires": {}
},
"brace-expansion": {
@@ -33990,7 +34486,7 @@
"cast-array": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cast-array/-/cast-array-1.0.1.tgz",
"integrity": "sha1-Jk7xEp5YiLxIysQP6RTp9puNGJ0=",
"integrity": "sha512-EiqtV+M9L42wd0IRgYjgVGDq7vdNBUUrdecd03QReJp8pIr59o2A1b0XfP+aCUlzLKx2E7zVetaogeJCtiHa+w==",
"requires": {
"isarray": "0.0.1"
}
@@ -35293,9 +35789,9 @@
"dev": true
},
"dequal": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
"integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
},
"destroy": {
"version": "1.0.4",
@@ -36903,6 +37399,21 @@
"schema-utils": "^3.0.0"
}
},
"file-selector": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
"integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
"requires": {
"tslib": "^2.4.0"
},
"dependencies": {
"tslib": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
"file-type": {
"version": "12.4.2",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
@@ -37348,28 +37859,12 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"function.prototype.name": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
"integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.0",
"functions-have-names": "^1.2.2"
}
},
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
"functions-have-names": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
"integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA=="
},
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -38701,30 +39196,31 @@
"integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==",
"dev": true
},
"intl-format-cache": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz",
"integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ=="
},
"intl-messageformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
"integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
"version": "9.13.0",
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
"integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
"requires": {
"intl-messageformat-parser": "1.4.0"
}
},
"intl-messageformat-parser": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
"integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="
},
"intl-relativeformat": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz",
"integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==",
"requires": {
"intl-messageformat": "^2.0.0"
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/fast-memoize": "1.2.1",
"@formatjs/icu-messageformat-parser": "2.1.0",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"into-stream": {
@@ -42090,12 +42586,6 @@
"integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==",
"dev": true
},
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
"peer": true
},
"js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@@ -42649,23 +43139,31 @@
"dev": true
},
"mailto-link": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-1.0.0.tgz",
"integrity": "sha1-9Sqp/MEXPLOAkV3xZNsxSRiRUl0=",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mailto-link/-/mailto-link-2.0.0.tgz",
"integrity": "sha512-b5FErkZ4t6mpH1IFZSw7Mm2IQHXQ2R0/5Q4xd7Rv8dVkWvE54mFG/UW7HjfFazXFjXTNsM+dSX2tTeIDrV9K9A==",
"requires": {
"assert-ok": "~1.0.0",
"cast-array": "~1.0.0",
"cast-array": "~1.0.1",
"object-filter": "~1.0.2",
"query-string": "~2.4.1"
"query-string": "~7.0.0"
},
"dependencies": {
"query-string": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz",
"integrity": "sha1-fbBmZCCAS6qSrp8miWKFWnYUPfs=",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz",
"integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==",
"requires": {
"strict-uri-encode": "^1.0.0"
"decode-uri-component": "^0.2.0",
"filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
}
},
"strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
}
}
},
@@ -43255,7 +43753,7 @@
"object-filter": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
"integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g="
"integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA=="
},
"object-inspect": {
"version": "1.12.0",
@@ -43266,6 +43764,7 @@
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3"
@@ -43300,6 +43799,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
"integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
"dev": true,
"requires": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3",
@@ -43993,12 +44493,6 @@
}
}
},
"popper.js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
"peer": true
},
"popsicle": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/popsicle/-/popsicle-9.2.0.tgz",
@@ -44506,16 +45000,6 @@
"react-is": "^16.13.1"
}
},
"prop-types-exact": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz",
"integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==",
"requires": {
"has": "^1.0.3",
"object.assign": "^4.1.0",
"reflect.ownkeys": "^0.2.0"
}
},
"prop-types-extra": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
@@ -44659,13 +45143,13 @@
}
},
"react-bootstrap": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.4.tgz",
"integrity": "sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA==",
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.6.tgz",
"integrity": "sha512-pSzYyJT5u4rc8+5myM8Vid2JG52L8AmYSkpznReH/GM4+FhLqEnxUa0+6HRTaGwjdEixQNGchwY+b3xCdYWrDA==",
"requires": {
"@babel/runtime": "^7.14.0",
"@restart/context": "^2.1.4",
"@restart/hooks": "^0.3.26",
"@restart/hooks": "^0.4.7",
"@types/invariant": "^2.2.33",
"@types/prop-types": "^15.7.3",
"@types/react": ">=16.14.8",
@@ -44676,7 +45160,7 @@
"invariant": "^2.2.4",
"prop-types": "^15.7.2",
"prop-types-extra": "^1.1.0",
"react-overlays": "^5.1.1",
"react-overlays": "^5.1.2",
"react-transition-group": "^4.4.1",
"uncontrollable": "^7.2.1",
"warning": "^4.0.3"
@@ -44918,6 +45402,16 @@
"scheduler": "^0.19.1"
}
},
"react-dropzone": {
"version": "14.2.3",
"resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
"integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
"requires": {
"attr-accept": "^2.2.2",
"file-selector": "^0.6.0",
"prop-types": "^15.8.1"
}
},
"react-error-overlay": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
@@ -44974,6 +45468,39 @@
"react-side-effect": "^2.1.0"
}
},
"react-intl": {
"version": "5.25.1",
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-5.25.1.tgz",
"integrity": "sha512-pkjdQDvpJROoXLMltkP/5mZb0/XqrqLoPGKUCfbdkP8m6U9xbK40K51Wu+a4aQqTEvEK5lHBk0fWzUV72SJ3Hg==",
"requires": {
"@formatjs/ecma402-abstract": "1.11.4",
"@formatjs/icu-messageformat-parser": "2.1.0",
"@formatjs/intl": "2.2.1",
"@formatjs/intl-displaynames": "5.4.3",
"@formatjs/intl-listformat": "6.5.3",
"@types/hoist-non-react-statics": "^3.3.1",
"@types/react": "16 || 17 || 18",
"hoist-non-react-statics": "^3.3.2",
"intl-messageformat": "9.13.0",
"tslib": "^2.1.0"
},
"dependencies": {
"@formatjs/ecma402-abstract": {
"version": "1.11.4",
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
"requires": {
"@formatjs/intl-localematcher": "0.2.25",
"tslib": "^2.1.0"
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -44984,19 +45511,32 @@
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"react-loading-skeleton": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.1.0.tgz",
"integrity": "sha512-j1U1CWWs68nBPOg7tkQqnlFcAMFF6oEK6MgqAo15f8A5p7mjH6xyKn2gHbkcimpwfO0VQXqxAswnSYVr8lWzjw==",
"requires": {}
},
"react-overlays": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.1.1.tgz",
"integrity": "sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q==",
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz",
"integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==",
"requires": {
"@babel/runtime": "^7.13.8",
"@popperjs/core": "^2.8.6",
"@restart/hooks": "^0.3.26",
"@popperjs/core": "^2.11.6",
"@restart/hooks": "^0.4.7",
"@types/warning": "^3.0.0",
"dom-helpers": "^5.2.0",
"prop-types": "^15.7.2",
"uncontrollable": "^7.2.1",
"warning": "^4.0.3"
},
"dependencies": {
"@popperjs/core": {
"version": "2.11.6",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
}
}
},
"react-popper": {
@@ -45332,11 +45872,6 @@
"integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==",
"requires": {}
},
"reflect.ownkeys": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz",
"integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
},
"regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -46728,7 +47263,9 @@
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true,
"optional": true
},
"string_decoder": {
"version": "1.3.0",
@@ -47098,9 +47635,9 @@
"dev": true
},
"tabbable": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-4.0.0.tgz",
"integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ=="
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
"integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA=="
},
"table": {
"version": "5.4.6",
@@ -47794,14 +48331,6 @@
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
},
"type-fest": {
"version": "2.12.2",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.2.tgz",
"integrity": "sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==",
"dev": true,
"optional": true,
"peer": true
},
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -47831,7 +48360,7 @@
"version": "4.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
"dev": true
"devOptional": true
},
"unbox-primitive": {
"version": "1.0.1",

View File

@@ -30,11 +30,11 @@
},
"dependencies": {
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
"@edx/frontend-component-footer": "10.2.4",
"@edx/frontend-component-header": "2.4.6",
"@edx/frontend-lib-special-exams": "1.16.3",
"@edx/frontend-platform": "1.15.6",
"@edx/paragon": "19.18.3",
"@edx/frontend-component-footer": "11.1.0",
"@edx/frontend-component-header": "3.1.0",
"@edx/frontend-lib-special-exams": "2.1.0",
"@edx/frontend-platform": "2.5.1",
"@edx/paragon": "^20.20.0",
"@fortawesome/fontawesome-svg-core": "1.3.0",
"@fortawesome/free-brands-svg-icons": "5.15.4",
"@fortawesome/free-regular-svg-icons": "5.15.4",

View File

@@ -19,7 +19,7 @@ describe('ActiveEnterpriseAlert', () => {
it('Shows alert message and links', () => {
render(<ActiveEnterpriseAlert {...mockData} />);
expect(screen.getByRole('alert')).toBeInTheDocument();
expect(screen.getByText('test message')).toBeInTheDocument();
expect(screen.getByText('test message', { exact: false })).toBeInTheDocument();
expect(screen.getByRole('link', { name: 'change enterprise now' })).toHaveAttribute(
'href', `${getConfig().LMS_BASE_URL}/enterprise/select/active/?success_url=http%3A%2F%2Flocalhost%2Fcourse%2Ftest-course-id%2Fhome`,
);

View File

@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import {
FormattedDate,
FormattedMessage,
FormattedRelative,
FormattedRelativeTime,
FormattedTime,
} from '@edx/frontend-platform/i18n';
import { Alert } from '@edx/paragon';
@@ -26,7 +26,7 @@ function CourseStartAlert({ payload }) {
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
const timeRemaining = (
<FormattedRelative
<FormattedRelativeTime
key="timeRemaining"
value={startDate}
{...timezoneFormatArgs}

View File

@@ -116,7 +116,7 @@ function OutlineTab({ intl }) {
const currentParams = new URLSearchParams(location.search);
const startCourse = currentParams.get('start_course');
if (startCourse === '1') {
sendTrackEvent('welcome.email.clicked.startcourse', {});
sendTrackEvent('enrollment.email.clicked.startcourse', {});
// Deleting the course_start query param as it only needs to be set once
// whenever passed in query params.

View File

@@ -355,13 +355,13 @@ describe('Outline Tab', () => {
await fetchAndRender('http://localhost/?weekly_goal=3');
expect(spy).toHaveBeenCalledTimes(1);
expect(sendTrackEvent).toHaveBeenCalledWith('welcome.email.clicked.setgoal', {});
expect(sendTrackEvent).toHaveBeenCalledWith('enrollment.email.clicked.setgoal', {});
});
it('emit start course event via query param', async () => {
sendTrackEvent.mockClear();
await fetchAndRender('http://localhost/?start_course=1');
expect(sendTrackEvent).toHaveBeenCalledWith('welcome.email.clicked.startcourse', {});
expect(sendTrackEvent).toHaveBeenCalledWith('enrollment.email.clicked.startcourse', {});
});
describe('weekly learning goal is not set', () => {
@@ -577,7 +577,7 @@ describe('Outline Tab', () => {
const instructorToolbar = await screen.getByTestId('instructor-toolbar');
expect(instructorToolbar).toBeInTheDocument();
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
expect(screen.getByText('1/1/2020')).toBeInTheDocument();
expect(screen.getByText('1/1/2020', { exact: false })).toBeInTheDocument();
});
it('does not render banner when not masquerading', async () => {
@@ -1017,6 +1017,22 @@ describe('Outline Tab', () => {
});
it('displays expiration warning', async () => {
const expirationDate = new Date();
// This message will render if the expiration date is within 28 days; set the date 10 days in future
expirationDate.setTime(expirationDate.getTime() + 864800000);
axiosMock.onGet(proctoringInfoUrl).reply(200, {
onboarding_status: 'verified',
onboarding_link: 'test',
expiration_date: expirationDate.toString(),
onboarding_release_date: onboardingReleaseDate.toISOString(),
});
await fetchAndRender();
await screen.findByText('This course contains proctored exams');
expect(screen.queryByText('Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
});
it('displays expiration warning for other course', async () => {
const expirationDate = new Date();
// This message will render if the expiration date is within 28 days; set the date 10 days in future
expirationDate.setTime(expirationDate.getTime() + 864800000);
@@ -1028,7 +1044,23 @@ describe('Outline Tab', () => {
});
await fetchAndRender();
await screen.findByText('This course contains proctored exams');
expect(screen.queryByText('Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
expect(screen.queryByText('Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.')).toBeInTheDocument();
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
});
it('displays expired', async () => {
const expirationDate = new Date();
// This message appears after expiration, set the date 10 days in the past
expirationDate.setTime(expirationDate.getTime() - 864800000);
axiosMock.onGet(proctoringInfoUrl).reply(200, {
onboarding_status: 'verified',
onboarding_link: 'test',
expiration_date: expirationDate.toString(),
onboarding_release_date: onboardingReleaseDate.toISOString(),
});
await fetchAndRender();
await screen.findByText('This course contains proctored exams');
expect(screen.queryByText('Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.')).toBeInTheDocument();
expect(screen.queryByText('Onboarding profile review can take 2+ business days.')).toBeInTheDocument();
});

View File

@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import {
FormattedDate,
FormattedMessage,
FormattedRelative,
FormattedRelativeTime,
FormattedTime,
} from '@edx/frontend-platform/i18n';
import { Alert } from '@edx/paragon';
@@ -21,7 +21,7 @@ function CourseEndAlert({ payload }) {
const timezoneFormatArgs = userTimezone ? { timeZone: userTimezone } : {};
const timeRemaining = (
<FormattedRelative
<FormattedRelativeTime
key="timeRemaining"
value={endDate}
{...timezoneFormatArgs}

View File

@@ -231,6 +231,11 @@ const messages = defineMessages({
defaultMessage: 'Expiring Soon',
description: 'A label to indicate that proctortrack onboarding exam will expire soon',
},
expiredProctoringStatus: {
id: 'learning.proctoringPanel.status.expired',
defaultMessage: 'Expired',
description: 'A label to indicate that proctortrack onboarding exam has expired',
},
proctoringCurrentStatus: {
id: 'learning.proctoringPanel.status',
defaultMessage: 'Current Onboarding Status:',
@@ -278,9 +283,14 @@ const messages = defineMessages({
},
expiringSoonProctoringMessage: {
id: 'learning.proctoringPanel.message.expiringSoon',
defaultMessage: 'Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',
defaultMessage: 'Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.',
description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expiring soon)',
},
expiredProctoringMessage: {
id: 'learning.proctoringPanel.message.expired',
defaultMessage: 'Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.',
description: 'The text that recommend an action when the status of the proctortrack onboarding exam is (expired)',
},
proctoringPanelGeneralInfo: {
id: 'learning.proctoringPanel.generalInfo',
defaultMessage: 'You must complete the onboarding process prior to taking any proctored exam. ',

View File

@@ -35,6 +35,7 @@ function ProctoringInfoPanel({ intl }) {
error: 'error',
otherCourseApproved: 'otherCourseApproved',
expiringSoon: 'expiringSoon',
expired: 'expired',
};
function getReadableStatusClass(examStatus) {
@@ -54,9 +55,14 @@ function ProctoringInfoPanel({ intl }) {
return readableClass;
}
function isNotYetSubmitted(examStatus) {
const NO_SHOW_STATES = ['submitted', 'second_review_required', 'verified'];
return !NO_SHOW_STATES.includes(examStatus);
function isCurrentlySubmitted(examStatus) {
const SUBMITTED_STATES = ['submitted', 'second_review_required'];
return SUBMITTED_STATES.includes(examStatus);
}
function isSubmissionRequired(examStatus) {
const OK_STATES = [readableStatuses.submitted, readableStatuses.verified];
return !OK_STATES.includes(examStatus);
}
function isNotYetReleased(examReleaseDate) {
@@ -77,11 +83,19 @@ function ProctoringInfoPanel({ intl }) {
return borderClass;
}
function isExpiringSoon(dateString) {
// Returns true if the expiration date is within 28 days
function isExpired(dateString) {
// Returns true if the expiration date has passed
const today = new Date();
const expirationDateObject = new Date(dateString);
return today > expirationDateObject.getTime() - 2419200000;
return today >= expirationDateObject.getTime();
}
function isExpiringSoon(dateString) {
// Returns true if the expiration date is within 28 days
const twentyeightDays = 28 * 24 * 60 * 60 * 1000;
const today = new Date();
const expirationDateObject = new Date(dateString);
return today > expirationDateObject.getTime() - twentyeightDays;
}
useEffect(() => {
@@ -96,7 +110,9 @@ function ProctoringInfoPanel({ intl }) {
setStatus(response.onboarding_status);
setLink(response.onboarding_link);
const expirationDate = response.expiration_date;
if (expirationDate && isExpiringSoon(expirationDate)) {
if (expirationDate && isExpired(expirationDate)) {
setReadableStatus(getReadableStatusClass('expired'));
} else if (expirationDate && isExpiringSoon(expirationDate)) {
setReadableStatus(getReadableStatusClass('expiringSoon'));
} else {
setReadableStatus(getReadableStatusClass(response.onboarding_status));
@@ -175,17 +191,17 @@ function ProctoringInfoPanel({ intl }) {
{![readableStatuses.verified, readableStatuses.otherCourseApproved].includes(readableStatus) && (
<>
<p>
{isNotYetSubmitted(status) && (
{!isCurrentlySubmitted(status) && (
intl.formatMessage(messages.proctoringPanelGeneralInfo)
)}
{!isNotYetSubmitted(status) && (
{isCurrentlySubmitted(status) && (
intl.formatMessage(messages.proctoringPanelGeneralInfoSubmitted)
)}
</p>
<p>{intl.formatMessage(messages.proctoringPanelGeneralTime)}</p>
</>
)}
{isNotYetSubmitted(status) && (
{isSubmissionRequired(readableStatus) && (
onboardingExamButton
)}
<Button variant="outline-primary" block href="https://support.edx.org/hc/en-us/sections/115004169247-Taking-Timed-and-Proctored-Exams">

View File

@@ -51,7 +51,7 @@ function WeeklyLearningGoalCard({
reminder_selected: selectReminders,
});
if (triggeredFromEmail) {
sendTrackEvent('welcome.email.clicked.setgoal', {});
sendTrackEvent('enrollment.email.clicked.setgoal', {});
}
}
}

View File

@@ -1237,6 +1237,7 @@ describe('Progress Tab', () => {
month: 'long',
day: 'numeric',
}),
{ exact: false },
)).toBeInTheDocument();
});
});
@@ -1302,7 +1303,7 @@ describe('Progress Tab', () => {
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
expect(screen.getByText('This learner no longer has access to this course. Their access expired on', { exact: false })).toBeInTheDocument();
expect(screen.getByText('1/1/2020')).toBeInTheDocument();
expect(screen.getByText('1/1/2020', { exact: false })).toBeInTheDocument();
});
it('does not render banner when not masquerading', async () => {
setMetadata({ is_enrolled: true, original_user_is_staff: true });
@@ -1315,7 +1316,7 @@ describe('Progress Tab', () => {
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
expect(screen.queryByText('This learner no longer has access to this course. Their access expired on', { exact: false })).not.toBeInTheDocument();
expect(screen.queryByText('1/1/2020')).not.toBeInTheDocument();
expect(screen.queryByText('1/1/2020', { exact: false })).not.toBeInTheDocument();
});
});
@@ -1331,7 +1332,7 @@ describe('Progress Tab', () => {
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
expect(screen.getByTestId('instructor-toolbar')).toBeInTheDocument();
expect(screen.getByText('This learner does not yet have access to this course. The course starts on', { exact: false })).toBeInTheDocument();
expect(screen.getByText('1/1/2999')).toBeInTheDocument();
expect(screen.getByText('1/1/2999', { exact: false })).toBeInTheDocument();
});
it('does not render banner when not masquerading', async () => {
setMetadata({
@@ -1343,7 +1344,7 @@ describe('Progress Tab', () => {
await executeThunk(thunks.fetchProgressTab(courseId), store.dispatch);
await act(async () => render(<LoadedTabPage courseId={courseId} activeTabSlug="progress">...</LoadedTabPage>, { store }));
expect(screen.queryByText('This learner does not yet have access to this course. The course starts on', { exact: false })).not.toBeInTheDocument();
expect(screen.queryByText('1/1/2999')).not.toBeInTheDocument();
expect(screen.queryByText('1/1/2999', { exact: false })).not.toBeInTheDocument();
});
});

View File

@@ -1,6 +1,8 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import { useModel } from '../../../generic/model-store';
import CompleteDonutSegment from './CompleteDonutSegment';
@@ -26,6 +28,8 @@ function CompletionDonutChart({ intl }) {
const lockedPercentage = lockedCount ? Number(((lockedCount / numTotalUnits) * 100).toFixed(0)) : 0;
const incompletePercentage = 100 - completePercentage - lockedPercentage;
const isLocaleRtl = isRtl(getLocale());
return (
<>
<svg role="img" width="50%" height="100%" viewBox="0 0 42 42" className="donut" style={{ maxWidth: '178px' }} aria-hidden="true">
@@ -35,7 +39,7 @@ function CompletionDonutChart({ intl }) {
<circle className="donut-hole" fill="#fff" cx="21" cy="21" r="15.91549430918954" />
<g className="donut-chart-text">
<text x="50%" y="50%" className="donut-chart-number">
{completePercentage}%
{completePercentage}{isLocaleRtl && '\u200f'}%
</text>
<text x="50%" y="50%" className="donut-chart-label">
{intl.formatMessage(messages.donutLabel)}

View File

@@ -41,7 +41,7 @@ function CurrentGradeTooltip({ intl, tooltipClassName }) {
overlay={(
<Popover id={`${isPassing ? 'passing' : 'non-passing'}-grade-tooltip`} aria-hidden="true" className={tooltipClassName}>
<Popover.Content data-testid="currentGradeTooltipContent" className={isPassing ? 'text-white' : 'text-dark-700'}>
{currentGrade.toFixed(0)}%
{currentGrade.toFixed(0)}{isLocaleRtl ? '\u200f' : ''}%
</Popover.Content>
</Popover>
)}

View File

@@ -2,7 +2,9 @@ import React from 'react';
import { useSelector } from 'react-redux';
import PropTypes from 'prop-types';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import { useModel } from '../../../../generic/model-store';
import CurrentGradeTooltip from './CurrentGradeTooltip';
import PassingGradeTooltip from './PassingGradeTooltip';
@@ -26,14 +28,16 @@ function GradeBar({ intl, passingGrade }) {
const lockedTooltipClassName = gradesFeatureIsFullyLocked ? 'locked-overlay' : '';
const adjustedRtlStyle = (percentOffest) => (isRtl(getLocale()) ? { transform: `translateX(${100 - percentOffest}%)` } : {});
return (
<div className="col-12 col-sm-6 align-self-center p-0">
<div className="sr-only">{intl.formatMessage(messages.courseGradeBarAltText, { currentGrade, passingGrade })}</div>
<svg width="100%" height="100px" className="grade-bar" aria-hidden="true">
<g style={{ transform: 'translateY(2.61em)' }}>
<rect className="grade-bar__base" width="100%" />
<rect className="grade-bar--passing" width={`${passingGrade}%`} />
<rect className={`grade-bar--current-${isPassing ? 'passing' : 'non-passing'}`} width={`${currentGrade}%`} />
<rect className="grade-bar--passing" width={`${passingGrade}%`} style={adjustedRtlStyle(passingGrade)} />
<rect className={`grade-bar--current-${isPassing ? 'passing' : 'non-passing'}`} width={`${currentGrade}%`} style={adjustedRtlStyle(currentGrade)} />
{/* Start divider */}
<rect className="grade-bar__divider" />

View File

@@ -25,7 +25,7 @@ function PassingGradeTooltip({ intl, passingGrade, tooltipClassName }) {
overlay={(
<Popover id="minimum-grade-tooltip" className={`bg-primary-500 ${tooltipClassName}`} aria-hidden="true">
<Popover.Content className="text-white">
{passingGrade}%
{passingGrade}{isLocaleRtl && '\u200f'}%
</Popover.Content>
</Popover>
)}

View File

@@ -19,6 +19,7 @@ function DetailedGrades({ intl }) {
} = useSelector(state => state.courseHome);
const {
org,
tabs,
} = useModel('courseHomeMeta', courseId);
const {
gradesFeatureIsFullyLocked,
@@ -36,11 +37,14 @@ function DetailedGrades({ intl }) {
});
};
const outlineLink = (
const overviewTab = tabs.find(tab => tab.slug === 'outline');
const overviewTabUrl = overviewTab && overviewTab.url;
const outlineLink = overviewTabUrl && (
<Hyperlink
variant="muted"
isInline
destination={`/course/${courseId}/home`}
destination={overviewTabUrl}
onClick={logOutlineLinkClick}
tabIndex={gradesFeatureIsFullyLocked ? '-1' : '0'}
>
@@ -63,14 +67,16 @@ function DetailedGrades({ intl }) {
{!hasSectionScores && (
<p className="small">{intl.formatMessage(messages.detailedGradesEmpty)}</p>
)}
<p className="x-small m-0">
<FormattedMessage
id="progress.ungradedAlert"
defaultMessage="For progress on ungraded aspects of the course, view your {outlineLink}."
description="Text that precede link that redirect to course outline page"
values={{ outlineLink }}
/>
</p>
{overviewTabUrl && (
<p className="x-small m-0">
<FormattedMessage
id="progress.ungradedAlert"
defaultMessage="For progress on ungraded aspects of the course, view your {outlineLink}."
description="Text that precede link that redirect to course outline page"
values={{ outlineLink }}
/>
</p>
)}
</section>
);
}

View File

@@ -1,7 +1,9 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import { DataTable } from '@edx/paragon';
import { useModel } from '../../../../generic/model-store';
@@ -17,6 +19,7 @@ function DetailedGradesTable({ intl }) {
sectionScores,
} = useModel('progress', courseId);
const isLocaleRtl = isRtl(getLocale());
return (
sectionScores.map((chapter) => {
const subsectionScores = chapter.subsections.filter(
@@ -32,7 +35,7 @@ function DetailedGradesTable({ intl }) {
const detailedGradesData = subsectionScores.map((subsection) => ({
subsectionTitle: <SubsectionTitleCell subsection={subsection} />,
score: <span className={subsection.learnerHasAccess ? '' : 'greyed-out'}>{subsection.numPointsEarned}/{subsection.numPointsPossible}</span>,
score: <span className={subsection.learnerHasAccess ? '' : 'greyed-out'}>{subsection.numPointsEarned}{isLocaleRtl ? '\\' : '/'}{subsection.numPointsPossible}</span>,
}));
return (

View File

@@ -2,18 +2,21 @@ import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import messages from '../messages';
function ProblemScoreDrawer({ intl, problemScores, subsection }) {
const isLocaleRtl = isRtl(getLocale());
return (
<span className="row w-100 m-0 x-small ml-4 pt-2 pl-1 text-gray-700 flex-nowrap">
<span id="problem-score-label" className="col-auto p-0">{intl.formatMessage(messages.problemScoreLabel)}</span>
<div className={classNames('col', 'p-0', { 'greyed-out': !subsection.learnerHasAccess })}>
<ul className="list-unstyled row w-100 m-0" aria-labelledby="problem-score-label">
{problemScores.map(problemScore => (
<li className="ml-3">{problemScore.earned}/{problemScore.possible}</li>
<li className="ml-3">{problemScore.earned}{isLocaleRtl ? '\\' : '/'}{problemScore.possible}</li>
))}
</ul>
</div>

View File

@@ -2,7 +2,9 @@ import React from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import { DataTable } from '@edx/paragon';
import { useModel } from '../../../../generic/model-store';
@@ -66,13 +68,15 @@ function GradeSummaryTable({ intl, setAllOfSomeAssignmentTypeIsLocked }) {
const locked = !gradesFeatureIsFullyLocked && hasNoAccessToAssignmentsOfType(assignment.type);
const isLocaleRtl = isRtl(getLocale());
return {
type: {
footnoteId, footnoteMarker, type: assignment.type, locked,
},
weight: { weight: `${(assignment.weight * 100).toFixed(0)}%`, locked },
grade: { grade: `${(assignment.averageGrade * 100).toFixed(0)}%`, locked },
weightedGrade: { weightedGrade: `${(assignment.weightedGrade * 100).toFixed(0)}%`, locked },
weight: { weight: `${(assignment.weight * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
grade: { grade: `${(assignment.averageGrade * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
weightedGrade: { weightedGrade: `${(assignment.weightedGrade * 100).toFixed(0)}${isLocaleRtl ? '\u200f' : ''}%`, locked },
};
});

View File

@@ -1,7 +1,9 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import {
getLocale, injectIntl, intlShape, isRtl,
} from '@edx/frontend-platform/i18n';
import { DataTable } from '@edx/paragon';
import { useModel } from '../../../../generic/model-store';
@@ -22,11 +24,13 @@ function GradeSummaryTableFooter({ intl }) {
const bgColor = isPassing ? 'bg-success-100' : 'bg-warning-100';
const totalGrade = (percent * 100).toFixed(0);
const isLocaleRtl = isRtl(getLocale());
return (
<DataTable.TableFooter className={`border-top border-primary ${bgColor}`}>
<div className="row w-100 m-0">
<div id="weighted-grade-summary" className="col-8 p-0 small">{intl.formatMessage(messages.weightedGradeSummary)}</div>
<div data-testid="gradeSummaryFooterTotalWeightedGrade" aria-labelledby="weighted-grade-summary" className="col-4 p-0 text-right font-weight-bold small">{totalGrade}%</div>
<div data-testid="gradeSummaryFooterTotalWeightedGrade" aria-labelledby="weighted-grade-summary" className="col-4 p-0 text-right font-weight-bold small">{totalGrade}{isLocaleRtl && '\u200f'}%</div>
</div>
</DataTable.TableFooter>
);

View File

@@ -15,6 +15,7 @@ function RelatedLinks({ intl }) {
} = useSelector(state => state.courseHome);
const {
org,
tabs,
} = useModel('courseHomeMeta', courseId);
const { administrator } = getAuthenticatedUser();
@@ -27,22 +28,31 @@ function RelatedLinks({ intl }) {
});
};
const overviewTab = tabs.find(tab => tab.slug === 'outline');
const overviewTabUrl = overviewTab && overviewTab.url;
const datesTab = tabs.find(tab => tab.slug === 'dates');
const datesTabUrl = datesTab && datesTab.url;
return (
<section className="mb-4 x-small">
<h3 className="h4">{intl.formatMessage(messages.relatedLinks)}</h3>
<ul className="pl-4">
{datesTabUrl && (
<li>
<Hyperlink destination={`/course/${courseId}/dates`} onClick={() => logLinkClicked('dates')}>
<Hyperlink destination={datesTabUrl} onClick={() => logLinkClicked('dates')}>
{intl.formatMessage(messages.datesCardLink)}
</Hyperlink>
<p>{intl.formatMessage(messages.datesCardDescription)}</p>
</li>
)}
{overviewTabUrl && (
<li>
<Hyperlink destination={`/course/${courseId}/home`} onClick={() => logLinkClicked('course_outline')}>
<Hyperlink destination={overviewTabUrl} onClick={() => logLinkClicked('course_outline')}>
{intl.formatMessage(messages.outlineCardLink)}
</Hyperlink>
<p>{intl.formatMessage(messages.outlineCardDescription)}</p>
</li>
)}
</ul>
</section>
);

View File

@@ -1,7 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react';
import { Router } from 'react-router';
import { createMemoryHistory } from 'history';
import { render, initializeMockApp } from '../setupTest';
import CoursewareRedirectLandingPage from './CoursewareRedirectLandingPage';
const redirectUrl = jest.fn();
@@ -17,6 +17,7 @@ jest.mock('react-router', () => ({
describe('CoursewareRedirectLandingPage', () => {
beforeEach(async () => {
await initializeMockApp();
delete global.location;
global.location = { assign: redirectUrl };
});

View File

@@ -3,6 +3,7 @@ import { screen, render } from '@testing-library/react';
import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
import { getConfig } from '@edx/frontend-platform';
import { BrowserRouter } from 'react-router-dom';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import { useModel, useModels } from '../../generic/model-store';
import CourseBreadcrumbs from './CourseBreadcrumbs';
@@ -106,14 +107,16 @@ describe('CourseBreadcrumbs', () => {
],
]);
render(
<BrowserRouter>
<CourseBreadcrumbs
courseId="course-v1:edX+DemoX+Demo_Course"
sectionId="block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations"
sequenceId="block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions"
isStaff
/>
</BrowserRouter>,
<IntlProvider>
<BrowserRouter>
<CourseBreadcrumbs
courseId="course-v1:edX+DemoX+Demo_Course"
sectionId="block-v1:edX+DemoX+Demo_Course+type@chapter+block@interactive_demonstrations"
sequenceId="block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions"
isStaff
/>
</BrowserRouter>,
</IntlProvider>,
);
it('renders course breadcrumbs as expected', async () => {
expect(screen.queryAllByRole('link')).toHaveLength(1);

View File

@@ -411,6 +411,7 @@ describe('Course Exit Pages', () => {
month: 'long',
day: 'numeric',
}),
{ exact: false },
)).toBeInTheDocument();
});
});

View File

@@ -14,7 +14,7 @@ describe('Sequence Content', () => {
courseId: courseware.courseId,
sequenceId: courseware.sequenceId,
unitId: models.sequences[courseware.sequenceId].unitIds[0],
unitLoadedHandler: () => {},
unitLoadedHandler: () => { },
};
});

View File

@@ -8,7 +8,7 @@ const messages = defineMessages({
},
'learn.contentLock.complete.prerequisite': {
id: 'learn.contentLock.complete.prerequisite',
defaultMessage: "You must complete the prerequisite: '{prereqSectionName}' to access this content.",
defaultMessage: "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
description: 'Message shown to indicate which prerequisite the student must complete prior to accessing the locked content. {prereqSectionName} is the name of the prerequisite.',
},
'learn.contentLock.goToSection': {

View File

@@ -19,7 +19,7 @@ function DiscussionsSidebar({ intl }) {
if (!topic?.id) {
return null;
}
const discussionsUrl = `${getConfig().DISCUSSIONS_MFE_BASE_URL}/${courseId}/topics/${topic.id}`;
const discussionsUrl = `${getConfig().DISCUSSIONS_MFE_BASE_URL}/${courseId}/category/${unitId}`;
return (
<SidebarBase
title={intl.formatMessage(messages.discussionsTitle)}
@@ -30,8 +30,7 @@ function DiscussionsSidebar({ intl }) {
>
<iframe
src={`${discussionsUrl}?inContext`}
className="d-flex w-100 border-0"
style={{ minHeight: '60rem' }}
className="d-flex w-100 h-100 border-0"
title={intl.formatMessage(messages.discussionsTitle)}
/>
</SidebarBase>

View File

@@ -59,7 +59,7 @@ describe('Discussions Trigger', () => {
renderWithProvider();
expect(screen.queryByTitle('Discussions')).toBeInTheDocument();
expect(screen.queryByTitle('Discussions'))
.toHaveAttribute('src', `http://localhost:2002/${courseId}/topics/topic-1?inContext`);
.toHaveAttribute('src', `http://localhost:2002/${courseId}/category/${unitId}?inContext`);
});
it('should show nothing if unit has no discussions associated with it', async () => {

View File

@@ -1,31 +1,27 @@
import arMessages from './messages/ar.json';
import caMessages from './messages/ca.json';
// no need to import en messages-- they are in the defaultMessage field
import es419Messages from './messages/es_419.json';
import frMessages from './messages/fr.json';
import es419Messages from './messages/es_419.json';
import zhcnMessages from './messages/zh_CN.json';
import heMessages from './messages/he.json';
import idMessages from './messages/id.json';
import kokrMessages from './messages/ko_kr.json';
import plMessages from './messages/pl.json';
import ptbrMessages from './messages/pt_br.json';
import ruMessages from './messages/ru.json';
import thMessages from './messages/th.json';
import ptMessages from './messages/pt.json';
import itMessages from './messages/it.json';
import ukMessages from './messages/uk.json';
import deMessages from './messages/de.json';
import ruMessages from './messages/ru.json';
import hiMessages from './messages/hi.json';
import frCAMessages from './messages/fr_CA.json';
// no need to import en messages-- they are in the defaultMessage field
const messages = {
ar: arMessages,
'es-419': es419Messages,
fr: frMessages,
'zh-cn': zhcnMessages,
ca: caMessages,
he: heMessages,
id: idMessages,
'ko-kr': kokrMessages,
pl: plMessages,
'pt-br': ptbrMessages,
pt: ptMessages,
it: itMessages,
de: deMessages,
hi: hiMessages,
'fr-ca': frCAMessages,
ru: ruMessages,
th: thMessages,
uk: ukMessages,
};

View File

@@ -1,445 +1,447 @@
{
"learning.accessExpiration.deadline": "قم بالترقية قبل {date} للحصول على صلاحية دخول غير محدود طالما أنه موجود على الموقع.",
"learning.accessExpiration.header": "تنتهي صلاحية حضرور الدورة كمستمع في {date}",
"learning.accessExpiration.body": "ستفقد كل صلاحيات الدخول إلى هذا المساق، بما في ذلك مسار تقدمك في {date}.",
"instructorToolbar.pageBanner.courseHasExpired": ا يمتلك الطالب/ة صلاحية الدخول الى المقرر التعليمي, انتهت الصلاحية منذ {date}.",
"learning.accessExpiration.upgradeNow": "ترقية الآن",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "يبدأ المساق في غضون {timeRemaining} في {courseStartDate}.",
"learning.outline.alert.end.long": "سينتهي المساق خلال {timeRemaining} في {courseEndDate}.",
"learning.outline.alert.end.calendar": "لا تنسى إضافة تذكير في التقويم!",
"instructorToolbar.pageBanner.courseHasNotStarted": "لا يمكن لالطالب الوصول لالمساق حتى الان. يبدأ المساق في {date}.",
"learning.enrollment.alert": "يجب أن تكون مسجلا في المساق لمشاهدة المحتوى.",
"learning.staff.enrollment.alert": "أنت تستعرض هذا المساق كفرد من فريق طاقم المساق، ولم تلتحق بعد.",
"learning.enrollment.enrollNow.Inline": "التحق الآن",
"learning.enrollment.enrollNow.Sentence": "التحق الآن",
"learning.enrollment.success": "تم التحاقك في هذا المساق بنجاح!",
"account-activation.alert.button": "استمر الى {siteName}",
"account-activation.alert.message": "تم ارسال بريد الكتروني الى {boldEmail} مع رابط لتفعيل الحساب. اذا لم تستطيع ان تجده يرجى فحص البريد في مجلد البريد المزعج او الغير مرغوب به ال (spam) \n {sendEmailTag}.",
"account-activation.resend.link": "ارسل البريد مرة اخرى ",
"learning.logistration.alert": لاطلاع على محتوى المساق {signIn} أو {register}.",
"account-activation.alert.title": "فعل حساب لكي تستطيع الدخول مرة أخرى",
"learn.sequence.entranceExamTextNotPassing": "للوصول إلى مواد الدورة التدريبية ، يجب أن تحصل على درجة {entranceExamMinimumScorePct}٪ أو أعلى في هذا الاختبار. نتيجتك الحالية هي {entranceExamCurrentScore}٪.",
"learn.sequence.entranceExamTextPassed": "نتيجتك هي {entranceExamCurrentScore}٪. لقد اجتزت امتحان القبول.",
"learning.accessExpiration.deadline": "قم بالترقية قبل {date} للاستفادة من دخول غير محدود للمساق طالما هو موجود على الموقع.",
"learning.accessExpiration.header": "تنتهي صلاحية دخول المساق كمستمع في {date}",
"learning.accessExpiration.body": "ستفقد كل صلاجيات الدخول إلى هذا المساق مع أي تقدم حققته. و ذلك اعتبارًا من {date}.",
"instructorToolbar.pageBanner.courseHasExpired": م يعد هذا المتعلّم مخولاً بالدخول لهذا المساق. لقد انتهت صلاحية بتاريخ {date}.",
"learning.accessExpiration.upgradeNow": "الترقية الآن",
"learning.activeEnterprise.alert": "{changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "تغيير المؤسسة الآن",
"learning.outline.alert.start.short": "يبدأ المساق في {timeRemaining} بتاريخ {courseStartDate}.",
"learning.outline.alert.end.long": "ينتهي المساق في {timeRemaining} في {courseEndDate}.",
"learning.outline.alert.end.calendar": "لا تنسَ إضافة تذكير في التقويم!",
"instructorToolbar.pageBanner.courseHasNotStarted": "لا يمكن للطالب بعدُ الدخول للمساق. يبدأ المساق في {date}.",
"learning.enrollment.alert": "يجب أن تكون مسجلا في المساق لمشاهدة محتواه.",
"learning.staff.enrollment.alert": "أنت تستعرض هذا المساق كعضو في الطاقم، و لست مسجلا فيه.",
"learning.enrollment.enrollNow.Inline": "سجل الآن",
"learning.enrollment.enrollNow.Sentence": "سجل الآن.",
"learning.enrollment.success": "تم تسجيلك في هذا المساق بنجاح!",
"account-activation.alert.button": "المواصلة إلى {siteName}",
"account-activation.alert.message": "تم ارسال بريد الكتروني الى {boldEmail} به رابط لتفعيل حسابك. لم تجده؟ تفقد إذًا مجلد الرسائل غير المرغوب فيها وإلا \nف{sendEmailTag}.",
"account-activation.resend.link": "أرسل البريد مرة اخرى ",
"learning.logistration.alert": رؤية محتوى المساق، {signIn} أو {register}.",
"account-activation.alert.title": "فعّل حسابك كي تستطيع الدخول مجددًا",
"learn.sequence.entranceExamTextNotPassing": "للوصول إلى مواد المساق، يجب أن تحصل في هذا الاختبار على درجة {entranceExamMinimumScorePct}% أو أعلى. درجتك الحالية هي {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "درجتك هي {entranceExamCurrentScore}%. لقد اجتزت امتحان القبول.",
"learning.dates.badge.completed": "مُكتمل",
"learning.dates.badge.dueNext": "موعد الاستحقاق التالي",
"learning.dates.badge.pastDue": "مضى تاريخ الاستحقاق",
"learning.dates.title": "تواريخ مهمّة",
"learning.dates.badge.dueNext": "الأجَل قادم",
"learning.dates.badge.pastDue": "انقضى الأجَل",
"learning.dates.title": "التواريخ المهمة",
"learning.dates.badge.today": "اليوم",
"learning.dates.badge.unreleased": "لم يتم الإصدار بعد",
"learning.dates.badge.verifiedOnly": "موثق فقط",
"learning.goals.unsubscribe.contact": "الاتصال بفريق الدعم",
"learning.goals.unsubscribe.description": "لن تستقبل اشعارات على بريدك الالكتروني لتذكيرك باهدافك ل {courseTitle}.",
"learning.dates.badge.unreleased": "لم يصدر بعد",
"learning.dates.badge.verifiedOnly": "حصري للمعتمدين",
"learning.goals.unsubscribe.contact": "اتصل بالدعم",
"learning.goals.unsubscribe.description": "لن يصلك مستقبلا أي تذكير بهدفك لـ {courseTitle} عبر البريد الإلكتروني.",
"learning.goals.unsubscribe.errorHeader": "حصل خطأ ما",
"learning.goals.unsubscribe.goToDashboard": "الذهاب إلى لوحة المعلومات",
"learning.goals.unsubscribe.header": "قمت بالغاء اشتراكك في شعارات التذكيرية لاهداف",
"learning.goals.unsubscribe.loading": "يجري الغاء الاشتراك...",
"learning.goals.unsubscribe.errorDescription": "لم نستطع الغاء اشتراكك في اشعارات التذكيرية باهدافك على بريدك الالكتروني. رجاءا حاول مرة اخرى او {contactSupport} للمساعدة.",
"learning.outline.alert.cert.earnedNotAvailable": "ينتهي هذا المساق في {courseEndDateFormatted}. تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "ستتوفر حالة درجتك وشهادتك قريبًا.",
"cert.alert.earned.ready.header": "ألف مبروك! شهادتك جاهزة.",
"cert.alert.notPassing.header": "أنت غير مؤهل بعد للحصول على شهادة",
"learning.goals.unsubscribe.header": "لقد ألغيت اشتراكك في رسائل التذكير بالهدف",
"learning.goals.unsubscribe.loading": "إلغاء الاشتراك جارٍ...",
"learning.goals.unsubscribe.errorDescription": "لم نستطع الغاء اشتراكك في رسائل التذكير بالهدف. رجاءً حاول مجددًا في وقت لاحق أو {contactSupport} للمساعدة.",
"learning.outline.alert.cert.earnedNotAvailable": "ينتهي هذا المساق في {courseEndDateFormatted}. تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "ستظهر درجتك و حالة شهادتك قريبًا.",
"cert.alert.earned.ready.header": "تهانينا! شهادتك جاهزة.",
"cert.alert.notPassing.header": "لست مؤهلا بعد للحصول على شهادة",
"cert.alert.notPassing.button": "عرض الدرجات",
"learning.outline.alert.end.short": "ينتهي هذا المساق في غضون {timeRemaining}في {courseEndTime}.",
"alert.enroll": "للوصول إلى محتوى الدورة الكاملة.",
"learning.privateCourse.signInOrRegister": "{signIn} أو {register} ثم التحق بهذا المساق.",
"learning.outline.alert.scheduled-content.heading": "المزيد من المحتوى قريبا!",
"learning.outline.alert.scheduled-content.body": "سيتم إصدار المزيد من المحتوى في هذه الدورة التدريبية في تاريخ لاحق. ابقى على اطلاع بتحديثات البريد الإلكتروني أو تحقق في تحديثات هذه الدورة التدريبية لاحقاَ.",
"learning.outline.alert.scheduled-content.button": "عرض الجدول الزمني للدورة",
"learning.outline.alert.end.short": "ينتهي هذا المساق في غضون {timeRemaining} في {courseEndTime}.",
"alert.enroll": "للوصول إلى كامل المساق.",
"learning.privateCourse.signInOrRegister": "{signIn} أو {register} أولاً، ثم سجل نفسك في المساق.",
"learning.outline.alert.scheduled-content.heading": "مزيد من المحتوى قادم قريبا!",
"learning.outline.alert.scheduled-content.body": "سيصدر لهذا المساق مزيد المحتوى في تاريخ لاحق. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا من أجل التحديثات.",
"learning.outline.alert.scheduled-content.button": "عرض مواعيد المساق",
"learning.outline.dates.all": "عرض جميع تواريخ المساق",
"learning.outline.goalButton.casual.text": "يوم واحد في الأسبوع",
"learning.outline.goalButton.screenReader.text": "غير رسمي",
"learning.outline.certificateAlt": "عينة الشهادة",
"learning.outline.collapseAll": "اغلاق الكل",
"learning.outline.completedAssignment": "اكتمل",
"learning.outline.certificateAlt": "نموذج عن الشهادة",
"learning.outline.collapseAll": "طي الكل",
"learning.outline.completedAssignment": "مكتمل",
"learning.outline.completedSection": "قسم مكتمل",
"learning.outline.dates": "تواريخ مهمّة",
"learning.outline.editGoal": حرير الهدف",
"learning.outline.expandAll": وسيع الكل",
"learning.outline.dates": "التواريخ المهمة",
"learning.outline.editGoal": عديل الهدف",
"learning.outline.expandAll": كبير الكل",
"learning.outline.goal": "الهدف",
"learning.outline.goalReminderDetail": ذا لاحظنا أنك لم تحقق هدفك تمامًا ، فسنرسل إليك تذكيرًا بالبريد الإلكتروني.",
"learning.outline.goalReminderDetail": ن لاحظنا أنك لم تحقق هدفك تمامًا، فسنرسل إليك تذكيرًا بالبريد الإلكتروني.",
"learning.outline.goalUnsure": "لست متأكدا بعد",
"learning.outline.handouts": "نشرات المساق",
"learning.outline.incompleteAssignment": " بيانات غير مستكملة",
"learning.outline.handouts": "مطبوعات المساق",
"learning.outline.incompleteAssignment": "غير مكتمل",
"learning.outline.incompleteSection": "قسم غير مكتمل",
"learning.outline.goalButton.intense.text": "5 أيام في الأسبوع",
"learning.outline.goalButton.intense.title": "شديد",
"learning.outline.learnMore": "اعرف المزيد",
"learning.outline.learnMore": "معرفة المزيد",
"learning.outline.altText.openSection": "فتح",
"learning.proctoringPanel.header": "تحتوي هذه الدورة على امتحانات مراقبة",
"learning.proctoringPanel.header": "يحتوي هذا المساق امتحانات مراقبة",
"learning.outline.goalButton.regular.text": "3 أيام في الأسبوع",
"learning.outline.goalButton.regular.title": "عادي",
"learning.outline.resumeBlurb": "تابع من حيث توقفت",
"learning.outline.resume": "استئناف الدورة",
"learning.outline.setGoal": "للبدء اضبط هدفًا للمساق عن طريق تحديد الخيار أدناه والذي يعطي الوصف الأمثل لخطتك التعليمية",
"learning.outline.setGoalReminder": "تفعيل خاصية تذكير الهدف",
"learning.outline.goalButton.casual.title": "حدد أسلوب هدف التعلم.",
"learning.outline.setWeeklyGoal": "حدد هدف التعلم الأسبوعي",
"learning.outline.setWeeklyGoalDetail": "إن تحديد هدف يحفزك على إنهاء الدورة. يمكنك دائما تغييره في وقت لاحق.",
"learning.outline.start": "ابدأ المساق",
"learning.outline.startBlurb": "ابدأ المساق اليوم",
"learning.outline.resumeBlurb": "استأنف من حيث توقفت",
"learning.outline.resume": "استئناف المساق",
"learning.outline.setGoal": "للبدء، اضبط هدفًا للمساق بتحديد أكثر خيار أدناه يصف خطتك التعلمية",
"learning.outline.setGoalReminder": "حدد ما يذكرك بالهدف",
"learning.outline.goalButton.casual.title": "حدد أسلوبًا للهدف التعلمي.",
"learning.outline.setWeeklyGoal": "حدد هدفًا تعلميًا أسبوعيًا",
"learning.outline.setWeeklyGoalDetail": "إن تحديد هدف يحفزك على إنهاء المساق. سيبقى بإمكانك تغييره لاحقا.",
"learning.outline.start": "بدأ المساق",
"learning.outline.startBlurb": "ابدأ مساقك اليوم",
"learning.outline.tools": "أدوات المساق",
"learning.outline.upgradeButton": "ترقية ({symbol}{price})",
"learning.outline.upgradeTitle": "اسعَ للحصول على شهادة معتمدة",
"learning.outline.welcomeMessage": "رسالة ترحيب",
"learning.outline.welcomeMessageShowMoreButton": "إظهار المزيد",
"learning.outline.welcomeMessageShowLessButton": "إظهار أقل",
"learning.outline.goalWelcome": "مرحبًا بك في",
"learning.proctoringPanel.status.notStarted": "لم تبدأ بعد",
"learning.proctoringPanel.status.started": "بدأ في تاريخ",
"learning.proctoringPanel.status.submitted": "تم الإرسال ",
"learning.proctoringPanel.status.verified": "تمّ التحقّق",
"learning.outline.welcomeMessage": "الكلمة الترحيبية",
"learning.outline.welcomeMessageShowMoreButton": "إظهار المزيد",
"learning.outline.welcomeMessageShowLessButton": "إظهار القليل",
"learning.outline.goalWelcome": "أهلاً بك في",
"learning.proctoringPanel.status.notStarted": "لم يبدأ بعد",
"learning.proctoringPanel.status.started": "بدأ في",
"learning.proctoringPanel.status.submitted": "مُرسَل",
"learning.proctoringPanel.status.verified": "معتمد",
"learning.proctoringPanel.status.rejected": "مرفوض",
"learning.proctoringPanel.status.error": "خطأ",
"learning.proctoringPanel.status.otherCourseApproved": "معتمد من مساق أخرى",
"learning.proctoringPanel.status.expiringSoon": "تنتهي قريبا",
"learning.proctoringPanel.status": "حالة التهيئة الحالية:",
"learning.proctoringPanel.message.notStarted": "لم تبدأ امتحان التهيئة الخاص بك.",
"learning.proctoringPanel.message.started": قد بدأت اختبار التهيئة الخاص بك.",
"learning.proctoringPanel.message.submitted": "لقد قدمت امتحان التهيئة الخاص بك.",
"learning.proctoringPanel.message.verified": "تمت الموافقة على امتحان التهيئة الخاص بك في هذه الدورة التدريبية.",
"learning.proctoringPanel.message.rejected": "تم رفض امتحان التهيئة الخاص بك. يرجى إعادة المحاولة امتحان التهيئة.",
"learning.proctoringPanel.message.error": "حدث خطأ أثناء امتحان التهيئة الخاص بك. يرجى إعادة المحاولة امتحان التهيئة.",
"learning.proctoringPanel.message.otherCourseApproved": "تمت الموافقة على امتحان التهيئة الخاص بك من دورة أخرى.",
"learning.proctoringPanel.detail.otherCourseApproved": "إذا تم تغيير جهازك ، نوصيك بإكمال امتحان التهيئة لهذه الدورة التدريبية للتأكد من أن إعدادتك لا تزال نفي بمتطلبات المراقبة.",
"learning.proctoringPanel.message.expiringSoon": "تمت الموافقة على ملف التعريف الخاص بك لامتحان التهيئة من دورة أخرى. ومع ذلك ، تنتهي صلاحية امتحان التهيئة الخاصة بك قريبًا. يرجى اجراء امتحان التهيئة مرة أخرى للتأكد من أنك ستتمكن من الاستمرار في إجراء الاختبارات المراقبة.",
"learning.proctoringPanel.generalInfo": "يجب عليك إكمال امتحان التهيئة قبل إجراء أي اختبار مراقب.",
"learning.proctoringPanel.generalInfoSubmitted": "ملفك الشخصي المقدم قيد المراجعة.",
"learning.proctoringPanel.generalTime": "يمكن أن تستغرق مراجعة الملف الشخصي لامتحان التهيئة على الأقل يومين عمل.",
"learning.proctoringPanel.onboardingButton": "ابدأ امتحان التهيئة",
"learning.proctoringPanel.onboardingPracticeButton": "عرض امتحان التهيئة",
"learning.proctoringPanel.onboardingButtonNotOpen": "يفتح امتحان التهيئة في : {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "مراجعة التعليمات ومتطلبات النظام",
"learning.proctoringPanel.onboardingButtonPastDue": "امتحان التهيئة تجاوز تاريخ الاستحقاق",
"learning.outline.sequence-due": "{description} في{assignmentDue}",
"progress.certificateStatus.unverifiedBody": "لإنشاء شهادة ، يجب عليك إكمال عملية التحقق من الهوية. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "اعرض إنجازاتك على لينكد ان أو على سيرتك الذاتية اليوم. يمكنك تنزيل شهادتك الآن والوصول إليها في أي وقت من لوحة التحكم والملف الشخصي.",
"courseCelebration.certificateBody.notAvailable.endDate": "تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {endDate}.",
"learning.proctoringPanel.status.otherCourseApproved": "معتمد من مساق آخر",
"learning.proctoringPanel.status.expiringSoon": "تنتهي صلاحيته قريبا",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "وضع الامتحان التحضيري حاليا:",
"learning.proctoringPanel.message.notStarted": م تبدأ امتحانك التحضيري.",
"learning.proctoringPanel.message.started": "لقد بدأت امتحانك التحضيري.",
"learning.proctoringPanel.message.submitted": "لقد سلمت امتحانك التحضيري.",
"learning.proctoringPanel.message.verified": "تم اعتماد امتحانك التحضيري في هذا المساق.",
"learning.proctoringPanel.message.rejected": "تم رفض امتحانك التحضيري. رجاءً حاول إجراء الامتحان مجددًا.",
"learning.proctoringPanel.message.error": "حدث خطأ أثناء امتحان التهيئة الخاص بك. رجاءً حاول إجراء الامتحان مجددًا.",
"learning.proctoringPanel.message.otherCourseApproved": "تم اعتماد امتحانك التحضيري من مساق آخر.",
"learning.proctoringPanel.detail.otherCourseApproved": "إن تغير جهازك، فإننا نصحك بإكمال الامتحان التحضيري لهذا المساق، و ذلك للتأكد من أن إعداداتك لا تزال تستوفي متطلبات المراقبة.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "عليك إتمام إجراءات التحضير قبل إجراء أي امتحان مراقب.",
"learning.proctoringPanel.generalInfoSubmitted": "ملفك الشخصي المرسَل قيد المراجعة.",
"learning.proctoringPanel.generalTime": "قد تستغرق مراجعة الملف الشخصي للامتحان التحضيري يومي عمل على الأقل.",
"learning.proctoringPanel.onboardingButton": "إكمال الامتحان التحضيري",
"learning.proctoringPanel.onboardingPracticeButton": "عرض الامتحان التحضيري",
"learning.proctoringPanel.onboardingButtonNotOpen": "يفتح الامتحان التحضيري في: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "مراجعة التعليمات و متطلبات النظام",
"learning.proctoringPanel.onboardingButtonPastDue": "انقضى أجَل الامتحان التحضيري",
"learning.outline.sequence-due": "{description} للتسليم قبل {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "لتوليد شهادة، يجب عليك إكمال التحقق من هويتك. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "اعرض إنجازاتك اليوم على لينكد إن أو ضمن سيرتك الذاتية. يمكنك تحميل شهادتك الآن و الوصول إليها في أي وقت من لوحة معلوماتك و ملفك الشخصي.",
"courseCelebration.certificateBody.notAvailable.endDate": "تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {endDate}.",
"progress.certificateStatus.notPassingHeader": "حالة الشهادة",
"progress.certificateStatus.notPassingBody": "من أجل التأهل للحصول على شهادة ، يجب أن تكون حاصلاً على درجة النجاح.",
"progress.certificateStatus.inProgressHeader": "المزيد من المحتوى قريبا!",
"progress.certificateStatus.inProgressBody": "يبدو أن هناك المزيد من المحتوى في هذه الدورة والذي سيتم إصداره في المستقبل. ابقى على اطلاع بتحديثات عن طربق البريد الإلكتروني أو تحقق مرة أخرى من صفحة الدورة لمعرفة وقت توفر المحتوى الجديد.",
"progress.certificateStatus.notPassingBody": "كي تكون أهلا لنيل شهادة، يجب أن تحصل على درجة نجاح.",
"progress.certificateStatus.inProgressHeader": "مزيد من المحتوى قادم قريبا!",
"progress.certificateStatus.inProgressBody": "يبدو أن في هذا المساق مزيدا من المحتوى سيصدر مستقبلا. ستقبل. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا لمعرفة موعد صدور هذا المحتوى.",
"progress.certificateStatus.requestableHeader": "حالة الشهادة",
"progress.certificateStatus.requestableBody": "تهانينا ، انت مؤهل للحصول على شهادة! من أجل الوصول إلى شهادتك ، اطلبها أدناه.",
"progress.certificateStatus.requestableButton": "طلب شهادة",
"progress.certificateStatus.requestableBody": "تهانينا، انت مؤهل للحصول على شهادة! للوصول إلى شهادتك، اطلبها أدناه.",
"progress.certificateStatus.requestableButton": "طلب الشهادة",
"progress.certificateStatus.unverifiedHeader": "حالة الشهادة",
"progress.certificateStatus.unverifiedButton": "التحقق من الهوية",
"progress.certificateStatus.courseCelebration.verificationPending": "عملية التحقق من المعرّف الخاص بك معلّقة وستتوفر شهادتك بمجرد الموافقة.",
"progress.certificateStatus.downloadableHeader": "!شهادتك جاهزة",
"progress.certificateStatus.viewableButton": "عرض شهاداتي",
"progress.certificateStatus.courseCelebration.verificationPending": "طلب التحقق من هويتك قيد الانتظار، و ستتوفر شهادتك فور الموافقة علىه.",
"progress.certificateStatus.downloadableHeader": "شهادتك جاهزة!",
"progress.certificateStatus.viewableButton": "عرض شهادتي",
"progress.certificateStatus.notAvailableHeader": "حالة الشهادة",
"progress.certificateBody.notAvailable.endDate": "تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {endDate}.",
"progress.certificateBody.notAvailable.endDate": "تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {endDate}.",
"progress.certificateStatus.upgradeHeader": "احصل على شهادة.",
"progress.certificateStatus.upgradeBody": "أنت في مسجل في المساق كمستمع ولست مؤهلاً للحصول على شهادة. من أجل الحصول على شهادة ، قم بترقية تسجيلك في المسافق اليوم.",
"progress.certificateStatus.upgradeBody": "أنت في مسجل في المساق كمستمع ولست مؤهلاً للحصول على شهادة. من أجل الحصول على شهادة، قم بترقية تسجيلك في المساق اليوم.",
"progress.certificateStatus.upgradeButton": "الترقية الآن",
"progress.certificateStatus.unverifiedHomeHeader.v2": "تحقق من هويتك للتأهل للحصول على شهادة.",
"progress.certificateStatus.unverifiedHomeButton": "تحقق من هويتي",
"progress.certificateStatus.unverifiedHomeBody": "من أجل إنشاء شهادة لهذه الدورة ، يجب عليك إكمال عملية التحقق من الهوية.",
"progress.certificateStatus.unverifiedHomeHeader.v2": "تحقق من هويتك حتى تتأهل للحصول على شهادة.",
"progress.certificateStatus.unverifiedHomeButton": "التحقق من هويتي",
"progress.certificateStatus.unverifiedHomeBody": "من أجل إنشاء شهادة لهذا المساق، يجب عليك إكمال عملية التحقق من الهوية.",
"progress.completion.donut.label": "مكتمل",
"progress.completion.body": "يمثل هذا مقدار محتوى الدورة الذي أكملته. لاحظ أن بعض المحتوى قد لا يكون متوفر حتى الان.",
"progress.completion.body": "يمثل هذا مقدار ما أكملته من محتوى المساق. لاحظ أن بعض المحتوى قد لا يكون صادرًا بعد.",
"progress.completion.tooltip.locked": "المحتوى الذي أكملته.",
"progress.completion.header": "اكتمال الدورة",
"progress.completion.tooltip": "المحتوى الذي يمكنك الوصول إليه ولم تكتمله بعد.",
"progress.completion.tooltip.complete": "المحتوى المقفل والمتاح فقط لأولئك الذين قامو بترقية تسجلهم بالمساق.",
"progress.completion.donut.percentComplete": "لقد أكملت {percent}٪ من محتوى هذا المساق.",
"progress.completion.donut.percentIncomplete": "لم تكمل {percent}٪ من محتوى هذا المساق, بالنسبة للمحتوى الذي يمكنك الوصول إليه.",
"progress.completion.donut.percentLocked": "{percent}٪ من المحتوى في هذه الدورة مقفول ومتاح فقط لمن قاموا بترقية تسجلهم بالمساق.",
"progress.creditInformation.creditNotEligible": "لم تعد مؤهلاً للحصول على اعتماد في هذه الدورة التدريبية. اعرف المزيد عن {creditLink}.",
"progress.creditInformation.creditEligible": "لقد استوفيت متطلبات الحصول على اعتماد في هذه الدورة. انتقل إلى {dashboardLink} لشراء اعتماد الدورة. أو تعرف على المزيد حول {creditLink}.",
"progress.creditInformation.creditPartialEligible": "أنت لم تفي بمتطلبات اعتماد المساق. اعرف المزيد عن {creditLink}.",
"progress.completion.header": "إكمال المساق",
"progress.completion.tooltip": "المحتوى المتاح لك و الذي لم تكمله بعد.",
"progress.completion.tooltip.complete": "المحتوى المقفل و المتاح فقط لمن يقوم بالترقية",
"progress.completion.donut.percentComplete": "لقد أكملت {percent}% من محتوى هذا المساق.",
"progress.completion.donut.percentIncomplete": "لم تكمل {percent}% من محتوى هذا المساق، بالنسبة للمحتوى الذي يمكنك الوصول إليه.",
"progress.completion.donut.percentLocked": "{percent}% من محتوى هذا المساق مقفل و متاح فقط لمن يقوم بالترقية.",
"progress.creditInformation.creditNotEligible": "لم تعد مؤهلاً للحصول على اعتماد في هذا المساق. اعرف المزيد عن {creditLink}.",
"progress.creditInformation.creditEligible": "لقد استوفيت متطلبات الحصول على اعتماد في هذا المساق. اذهب إلى {dashboardLink} لشراء اعتماد المساق، أو اعرف المزيد عن {creditLink}.",
"progress.creditInformation.creditPartialEligible": "لم تستوف بعد شروط الحصول على اعتماد. اعرف المزيد عن {creditLink}.",
"progress.creditInformation.completed": "مُكتمل",
"progress.creditInformation.courseCredit": "اعتماد المساق",
"progress.creditInformation.minimumGrade": "الحد الأدنى لدرجة الاعتماد ({minGrade}٪)",
"progress.creditInformation.requirementsHeader": "متطلبات الحصول على اعتماد للمساق",
"progress.creditInformation.minimumGrade": "أدنى درجة مؤهلة للحصول على اعتماد ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "متطلبات الحصول على اعتماد المساق",
"progress.creditInformation.upcoming": "قريبًا",
"progress.creditInformation.verificationFailed": "فشل التحقق",
"progress.creditInformation.verificationSubmitted": "تم تقديم التحقق",
"progress.ungradedAlert": لتقدمك في المحتوى الذي لم يتم تقديره من المساق ، قم بعرض {outlineLink}.",
"progress.footnotes.droppableAssignments": "أدنى {numDroppable، plural, one {# {assignmentType} تجاهله} other {# {assignmentType} تجاهلهم} من النتائج.",
"progress.creditInformation.verificationSubmitted": "تم إرسال طلب التحقق",
"progress.ungradedAlert": معرفة تقدمك في محتويات المساق غير المنقّطة، اطلع على {outlineLink}ك.",
"progress.footnotes.droppableAssignments": "لا تٌحتسب أدنى {numDroppable, plural,\n one {درجة}\n two {درجتين}\n few {# درجات}\n many {# درجة}\n other {# درحة}\n} {assignmentType}.",
"progress.assignmentType": "نوع الواجب",
"progress.footnotes.backToContent": "العودة إلى المحتوى",
"progress.courseGrade.body": "يمثل هذا مكان درجتك الحالية مقابل الدرجة المطلوبة لاجتياز هذه الدورة التدريبية.",
"progress.courseGrade.gradeBar.altText": "درجتك الحالية هي {currentGrade}٪. مطلوب الحصول على درجة {passingGrade}٪ للنجاح في هذه الدورة التدريبية.",
"progress.courseGrade.footer.generic.passing": "أنت ناجح حاليًا في هذه الدورة التدريبية",
"progress.courseGrade.footer.nonPassing": "مطلوب درجة مرجحة تبلغ {passingGrade}٪ للنجاح في هذه الدورة",
"progress.courseGrade.footer.passing": "أنت تنجح حاليًا في اجتياز هذه الدورة بتقدير {letterGrade} ({minGrade} - {maxGrade}٪)",
"progress.courseGrade.body": "يمثل هذا درجتك الموزونة الحالية مقارنة بالدرجة المطلوبة للنجاح في هذا المساق.",
"progress.courseGrade.gradeBar.altText": "درجتك الحالية هي {currentGrade}% مطلوب الحصول على درجة موزونة تبلغ {passingGrade}% للنجاح في هذا المساق.",
"progress.courseGrade.footer.generic.passing": "أنت ناجح حاليًا في هذا المساق.",
"progress.courseGrade.footer.nonPassing": "مطلوب الحصول على درجة موزونة تبلغ {passingGrade}% للنجاح في هذا المساق.",
"progress.courseGrade.footer.passing": "أنت ناجح حاليًا في هذا المساق بتقدير {letterGrade} ({minGrade} - {maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "ميزة مقفلة",
"progress.courseGrade.preview.headerLimited": "ميزة محدودة",
"progress.courseGrade.preview.header.ariaHidden": "معاينة ال",
"progress.courseGrade.preview.body.unlockCertificate": "قم بترقية تسجيلك لعرض الدرجات والعمل للحصول على الشهادة.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "قم بترقية تسجيلك للعمل من أجل الحصول على شهادة.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "انقضى الموعد النهائي للترقية في هذه الدورة.",
"progress.courseGrade.preview.header.ariaHidden": "معاينة ",
"progress.courseGrade.preview.body.unlockCertificate": "ارفع القيود لعرض الدرجات و العمل للحصول على شهادة.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "ارفع القيود من أجل العمل للحصول على شهادة.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "انقضى أجَل الترقية في هذا المساق",
"progress.courseGrade.preview.button.upgrade": "الترقية الآن",
"progress.courseGrade.gradeRange.tooltip": "نطاقات الدرجات لهذه الدورة:",
"progress.courseOutline": "مخطّط المساق",
"progress.courseGrade.gradeRange.tooltip": "مجالات الدرجات لهذا المساق:",
"progress.courseOutline": "مخطّط مساق",
"progress.courseGrade.label.currentGrade": "درجتك الحالية",
"progress.detailedGrades": "الدرجات التفصيلية",
"progress.detailedGrades.emptyTable": "ليس لديك أي مسائل بحاجة للتقييم.",
"progress.footnotes.title": "ملاحظات لملخص الدرجات",
"progress.detailedGrades.emptyTable": "ليست لديك حاليا أي درجات لمسائل منقّطة.",
"progress.footnotes.title": "ملاحظات بخصوص ملخص الدرجات",
"progress.gradeSummary.grade": "الدرجة",
"progress.courseGrade.grades": "درجات",
"progress.courseGrade.gradesAndCredit": "الدرجات والساعات المعتمدة",
"progress.courseGrade.gradeRange.Tooltip": "عن نطاق الدرجات",
"progress.gradeSummary": "ملخص الدرجة",
"progress.gradeSummary.limitedAccessExplanation": "لديك وصول محدود إلى الواجبات المقدرة كجزء من تسجيلك ( كمستمع ) في هذه الدورة التدريبية.",
"progress.gradeSummary.tooltip.alt": "عن ملخص الدرجات",
"progress.gradeSummary.tooltip.body": "يتم تحديد وزن كل واجب من المقرر الدراسي الخاص, بك من قبل مدرسك. (حاصل الضرب ل تقيمك بواجب معين ب وزن الواجب نفسه) ينتج عن ذلك درجتك الموزنة. درجتك الموزنة هي ما يتم استخدامه لتحديد ما إذا كنت ستنجح في الدورة التدريبية.",
"progress.noAcessToAssignmentType": "ليس لديك حق الوصول إلى الواجبات من النوع {assignmentType}",
"progress.noAcessToSubsection": يس لديك حق الوصول إلى جزء {displayName}",
"progress.courseGrade.grades": "الدرجات",
"progress.courseGrade.gradesAndCredit": "الدرجات و الاعتماد",
"progress.courseGrade.gradeRange.Tooltip": "تلميح عن مجال الدرجة",
"progress.gradeSummary": "ملخص الدرجات",
"progress.gradeSummary.limitedAccessExplanation": "وصولك للواجبات المنقّطة محدود، لكونك مسجلا صمن مسار الاستماع في هذا المساق.",
"progress.gradeSummary.tooltip.alt": "تلميح عن ملخص الدرجات",
"progress.gradeSummary.tooltip.body": "أوزان الواحبات في مساقك محددة من طرف الأستاذ. يتم حساب الدرجة الموزونة بضرب درجتك في وزن ذلك الواجب. درجتك الموزنة هي ما يُستخدم لتحديد ما إن كنت ناجحًا في المساق.",
"progress.noAcessToAssignmentType": " لا يمكنك الوصول إلى الواجبات من نوع \"{assignmentType}\"",
"progress.noAcessToSubsection": ا يمكنك الوصول إلى القسم الفرعي \"{displayName}\"",
"progress.courseGrade.label.passingGrade": "درجة النجاح",
"progress.detailedGrades.problemScore.label": "درجات الواجبات:",
"progress.detailedGrades.problemScore.toggleButton": "اظهار التقييم لكل مسألة ب {subsectionTitle}",
"progress.detailedGrades.overridden": "تم تجاوز درجة القسم.",
"progress.score": "النتيجة",
"progress.weight": "القيمة",
"progress.weightedGrade": "درجتك الموزنة",
"progress.weightedGradeSummary": "ملخص درجتك الموزنة الحالية",
"progress.detailedGrades.problemScore.label": "درجات المسائل:",
"progress.detailedGrades.problemScore.toggleButton": "إظهار / إخفاء درجة كل مسألة في {subsectionTitle}",
"progress.detailedGrades.overridden": "تم استبدال درجة هذا القسم.",
"progress.score": "الدرجة",
"progress.weight": "الوزن",
"progress.weightedGrade": "الدرجة الموزونة",
"progress.weightedGradeSummary": "ملخص الدرجات الموزونة الحالية",
"progress.header": "تقدمك",
"progress.header.targetUser": "التقدم في المساق لـ {username}",
"progress.link.studio": "استعراض عملية التقييم في استوديو",
"progress.relatedLinks.datesCard.description": "عرض الجدول الزمني لتواريخ المستحقة والتعيينات القادمة ل واجبات الدورة.",
"progress.relatedLinks.datesCard.link": "تواريخ الاستحقاق",
"progress.relatedLinks.outlineCard.description": "نظرة عامة لمحتوى دورتك.",
"progress.header.targetUser": "تقدم {username} في المساق",
"progress.link.studio": "استعراض التقييم في الاستوديو",
"progress.relatedLinks.datesCard.description": "عرض لجدول زمني يتضمن الآجال و الواجبات القادمة لمساقك.",
"progress.relatedLinks.datesCard.link": "التواريخ",
"progress.relatedLinks.outlineCard.description": "نظرة عامة لمحتوى مساقك.",
"progress.relatedLinks.outlineCard.link": "مخطّط المساق",
"progress.relatedLinks": "روابط ذات صلة",
"datesBanner.suggestedSchedule": "لقد وضعنا جدولاً زمنيًا مقترحًا لمساعدتك على وضع خطة تعليم. لكن لا تقلق - فهي خطة مرنة حتى تتمكن من التعلم بالسرعة التي تناسبك.",
"datesBanner.upgradeToCompleteGradedBanner.header": "قم بالترقية لالغاء القفل.",
"datesBanner.upgradeToCompleteGradedBanner.body": "أنت ملتحق كمستمع في هذه الدورة التدريبية ، مما يعني أنك غير قادر على المشاركة في الواجبات المقدرة. لإكمال الواجبات المقدرة كجزء من هذه الدورة التدريبية ، يمكنك الترقية اليوم.",
"datesBanner.upgradeToCompleteGradedBanner.button": "ترقية الآن",
"datesBanner.upgradeToResetBanner.body": "للبقاء على المسار الصحيح، يمكن تحديث هذا الجدول وتحويل المهام السابقة المستحقة إلى مهام تاريخ استحقاقها في المستقبل. لا داعي للقلق - لن تفقد أي تقدم أحرزته عند تغيير تواريخ الاستحقاق.",
"datesBanner.upgradeToResetBanner.button": "قم بالترقية لتغيير التواريخ المستحقة",
"datesBanner.resetDatesBanner.header": "يبدو أنه قد فاتتك بعض المواعيد النهائية المهمة بناءً على جدولنا الزمني المقترح.",
"datesBanner.resetDatesBanner.body": "للبقاء على المسار الصحيح، يمكن تحديث هذا الجدول وتحويل المهام السابقة المستحقة إلى المستقبل. لا داعي للقلق - لن تفقد أي تقدم أحرزته عند تغيير تواريخ الاستحقاق.",
"datesBanner.resetDatesBanner.button": "تغيير التواريخ المستحقة",
"datesBanner.suggestedSchedule": "لقد بنينا جدولا زمنيا مقترحًا لمساعدتك في البقاء على السكة. لكن لا تقلق، فهو مرن و يمكّنك من التعلّم وفق وتيرتك الخاصة.",
"datesBanner.upgradeToCompleteGradedBanner.header": "قم بالترقية لرفع القيود",
"datesBanner.upgradeToCompleteGradedBanner.body": "أنت مستمع في هذا المساق، ما يعني أنك غير قادر على المشاركة في الواجبات المنقّطة. لإكمال الواجبات المنقّطة كجزء من هذا المساق، يمكنك الترقية اليوم.",
"datesBanner.upgradeToCompleteGradedBanner.button": "الترقية الآن",
"datesBanner.upgradeToResetBanner.body": "للبقاء على السكة، يمكنك تحديث هذا الجدول و تغيير آجال الواجبات المنقضية إلى آجال مستقبلية. لا داعي للقلق، لن تفقد أي تقدم أحرزته عند تغيير الآجال.",
"datesBanner.upgradeToResetBanner.button": "الترقية لتغيير الآجال",
"datesBanner.resetDatesBanner.header": "يبدو أنك قد تخطيت بعض الآجال المهمة حسب جدولنا الزمني المقترح.",
"datesBanner.resetDatesBanner.body": "للبقاء على السكة، يمكنك تحديث هذا الجدول و تغيير آجال الواجبات المنقضية إلى آجال مستقبلية. لا داعي للقلق، لن تفقد أي تقدم أحرزته عند تغيير الآجال.",
"datesBanner.resetDatesBanner.button": "تغيير الآجال",
"learn.navigation.course.tabs.label": "مواد المساق",
"unit.bookmark.button.add.bookmark": "إضافة الصفحة للمفضلة",
"unit.bookmark.button.remove.bookmark": "تم وضع علامة مرجعية",
"unit.bookmark.button.add.bookmark": "التأشير على هذه الصفحة",
"unit.bookmark.button.remove.bookmark": "تم التأشير على الصفحة",
"learning.celebration.completed": "لقد أكملت للتو القسم الأول من مساقك.",
"learning.celebration.congrats": "تهانينا!",
"learning.celebration.earned": "لقد استحققته.",
"learning.celebration.earned": "لقد حققته!",
"learning.celebration.emailSubject": "أنا في طريقي لإتمام {title} عن بعد في {platform}!",
"learning.celebration.forward": "استمر ",
"learning.celebration.forward": "واصل",
"learning.celebration.goalMet": "لقد حققت هدفك!",
"learning.celebration.keepItUp": "أبقه على ما انت عليه",
"learning.celebration.share": "لحظة من فضلك للاحتفاء بك ومشاركتك فرحة تقدمك",
"learning.celebration.social": "أنا في طريقي لإتمام {title} عن بعد في {platform}. ما الذي تقضي الوقت في تعلمه؟",
"learning.celebration.goalCongrats": "تهانينا ، لقد حققت هدفك التعليمي وهو {nTimes} في الأسبوع.",
"learning.celebration.setGoal": "يمكن أن يساعدك تحديد هدف {strongText} في مقررك الدراسي.",
"calculator.instructions.button.label": "إرشادات الحاسبة",
"calculator.instructions": "لمزيد من التفاصيل، تفضل بالاطلاع على {expressions_link}.",
"learning.celebration.keepItUp": "واصل على هذا المنوال",
"learning.celebration.share": "خذ لحظة للاحتفاء بتقدّمك و مشاركته.",
"learning.celebration.social": "أنا في طريقي لإتمام مساق \"{title}\" عن بعد مع {platform}. ما الذي تقضي الوقت في تعلمه؟",
"learning.celebration.goalCongrats": "تهانينا، فقد حققت هدفك التعلّمي و هو {nTimes} أسبوعيا.",
"learning.celebration.setGoal": "إن تحديد هدف {strongText} قد يساعدك في مساقك.",
"calculator.instructions.button.label": "إرشادات الآلة الحاسبة",
"calculator.instructions": "لمزيد من المعلومات، اطّلع على {expressions_link}.",
"calculator.instructions.support.title": "مركز المساعدة",
"calculator.instructions.useful.tips": "تلميحات مفيدة:",
"calculator.hint1": "يُرجى استخدام القوسين () لإيضاح التعابير. ويمكنك استخدام قوسين داخل قوسين آخرين. ",
"calculator.instructions.useful.tips": "نصائح مفيدة:",
"calculator.hint1": "استخدم القوسين () لجعل التعابير واضحة. يمكنك استخدام الأقواس بعضها داخل بعض. ",
"calculator.hint2": "لا تستخدم مسافات في التعابير.",
"calculator.hint3": "بالنسبة للثوابت، حدِّد عملية الضرب بوضوح (مثلًا: 5*c). ",
"calculator.hint4": "بالنسبة لللاحقات، أَدخِل الرقم والملحق من دون مسافة بينهما (مثلًا: 5c). ",
"calculator.hint5": "بالنسبة للوظائف، أدخِل اسم الوظيفة، يتبعه التعبير بين قوسين. ",
"calculator.instruction.table.to.use.heading": لاستخدام",
"calculator.hint3": "بالنسبة للثوابت، أبرز عملية الضرب بوضوح (مثلًا: 5*c).",
"calculator.hint4": "بالنسبة للواحق، اكتب الرقم فاللاحقة دون مسافة (مثلًا: 5c).",
"calculator.hint5": "بالنسبة للدوال، اكتب اسم الدالة، ثم التعبير بين قوسين.",
"calculator.instruction.table.to.use.heading": "لاستخدام",
"calculator.instruction.table.type.heading": "النوع",
"calculator.instruction.table.examples.heading": "أمثلة",
"calculator.instruction.table.to.use.numbers": "أرقام",
"calculator.instruction.table.to.use.numbers.type1": "أعداد صحيحة",
"calculator.instruction.table.to.use.numbers": "الأرقام",
"calculator.instruction.table.to.use.numbers.type1": "أعداد الصحيحة",
"calculator.instruction.table.to.use.numbers.type2": "كسور",
"calculator.instruction.table.to.use.numbers.type3": "أعداد عشرية",
"calculator.instruction.table.to.use.operators": "المعامِلات الحسابية",
"calculator.instruction.table.to.use.operators.type1": "(زائد، ناقص، ضرب، قسمة)",
"calculator.instruction.table.to.use.numbers.type3": "أعداد العشرية",
"calculator.instruction.table.to.use.operators": "العمليات الحسابية",
"calculator.instruction.table.to.use.operators.type1": "(جمع، طرح، ضرب و قسمة)",
"calculator.instruction.table.to.use.operators.type2": "(الرفع إلى قوة)",
"calculator.instruction.table.to.use.operators.type3": "(مقاومات متوازية)",
"calculator.instruction.table.to.use.constants": "الثوابت ",
"calculator.instruction.table.to.use.affixes": "اللاحقات",
"calculator.instruction.table.to.use.affixes.type": "علامة النسبة المئوية (٪)",
"calculator.instruction.table.to.use.basic.functions": "الاقترانات الأساسية",
"calculator.instruction.table.to.use.trig.functions": "الاقترانات المثلثية",
"calculator.instruction.table.to.use.affixes": "اللواحق",
"calculator.instruction.table.to.use.affixes.type": "علامة النسبة المئوية (%)",
"calculator.instruction.table.to.use.basic.functions": "الدوال الأساسية",
"calculator.instruction.table.to.use.trig.functions": "الدوال المثلثية",
"calculator.instruction.table.to.use.scientific.notation": "الكتابة العلميّة للأعداد",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} والأس",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} الترميز",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax}والأس",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} و الأس",
"calculator.instruction.table.to.use.scientific.notation.type2": "كتابة {notationSyntax}",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} و الأس",
"calculator.button.label": "الآلة الحاسبة ",
"calculator.input.field.label": "الإدخال في الآلة الحاسبة",
"calculator.submit.button.label": "احسب",
"calculator.result.field.label": "نتيجة الحاسبة",
"calculator.input.field.label": "أدخل في الآلة الحاسبة",
"calculator.submit.button.label": "حساب",
"calculator.result.field.label": "نتيجة الآلة الحاسبة",
"calculator.result.field.placeholder": "النتيجة",
"notes.button.show": "إظهار الملاحظات",
"notes.button.hide": "إخفاء الملاحظات",
"courseExit.catalogSearchSuggestion": "هل تطمح إلى تعلّم المزيد؟{searchOurCatalogLink} لاستكشاف المزيد من المساقات والبرامج.",
"courseCelebration.certificateBody.available": "اعرض إنجازاتك على لينكد إن أو سيرتك الذاتية اليوم.\nيمكنك تنزيل الشهادة الآن والوصول إليها في أي وقت من\n{dashboardLink} و{profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "ينتهي هذا المساق في {endDate}. تمت جدولة الدرجات النهائية وأي شهادات مكتسبة لتكون متاحة بعد {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": إنشاء شهادة يجب عليك إتمام عملية التحقق من الهوية.\n{idVerificationSupportLink} الآن.",
"courseCelebration.certificateBody.upgradable": "لم يفت الأوان للترقية. بالنسبة لـ {price} ستقوم بإلغاء تأمين الوصول إلى كافة أنواع \nالواجبات في هذا المساق. عند الانتهاء، ستحصل على شهادة تم التحقق منها وهي إحدى\nالوثائق القيّمة لتحسين فرصك الوظيفية وتطويرك المهني، أو لتسليط الضوء على\nشهادة في التطبيقات التعليمية.",
"courseCelebration.upgradeDiscountCodePrompt": "استخدم الرمز {code} عند إتمام الطلب لخصم {percent}%!",
"courseCelebration.recommendations.heading": "استمر في بناء مهاراتك مع هذه الدورات!",
"courseExit.catalogSearchSuggestion": "هل انت متطلع للتعلّم أكثر؟ {searchOurCatalogLink} عن مزيد من المساقات والبرامج.",
"courseCelebration.certificateBody.available": "اعرض إنجازاتك على لينكد إن أو سيرتك الذاتية اليوم.\nيمكنك تنزيل الشهادة الآن والوصول إليها في أي وقت من\n{dashboardLink} و {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "ينتهي هذا المساق في {endDate}. تمت جدولة ظهور الدرجات النهائية و أي شهادات مكتسبة ابتداءً من {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": توليد شهادة، يجب عليك إتمام التحقق من الهوية.\n{idVerificationSupportLink} الآن.",
"courseCelebration.certificateBody.upgradable": "لم يفت الأوان بعد للترقية. مقابل {price}، سترفع القيود عن كل الواجبات المنقّطة في هذا المساق. عند الانتهاء، ستحصل على شهادة معتمدة، وهي من الوثائق القيّمة التي تنفع لتوسيع آفاقك في التوظيف و تقدمك في حياتك المهنية، أو لإبراز شهادتك في طلبات الالتحاق بالمدارس.",
"courseCelebration.upgradeDiscountCodePrompt": "استخدم الرمز {code} عند الشراء للاستفادة من خصم {percent}%!",
"courseCelebration.recommendations.heading": "واصل بناء مهاراتك مع هذه المساقات!",
"courseCelebration.recommendations.label": "المساق",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "اكتشف المزيد من الدورات",
"courseCelebration.recommendations.loading_recommendations": "جاري تحميل التوصيات",
"courseCelebration.recommendations.card.schools.label": "المؤسسات التعليمية والشركاء",
"courseCelebration.dashboardInfo": "يمكنك الوصول إلى هذا المساق ومواده على لوحة معلوماتك {dashboardLink}.",
"courseExit.programs.applyForCredit": "تقدم بطلب للحصول على ائتمان",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {، } conjunction { {sp}و } other { }}",
"courseCelebration.recommendations.browse_catalog": "اكتشف المزيد من المساقات",
"courseCelebration.recommendations.loading_recommendations": "تحميل المقترحات جارٍ",
"courseCelebration.recommendations.card.schools.label": "المدارس و الشركاء",
"courseCelebration.dashboardInfo": "يمكنك الوصول إلى هذا المساق و مواده من {dashboardLink}.",
"courseExit.programs.applyForCredit": "تقدّم بطلب للحصول على اعتماد",
"courseCelebration.certificateHeader.downloadable": "!شهادتك جاهزة",
"courseCelebration.certificateHeader.notAvailable": "ستتوفر حالة درجتك وشهادتك قريبًا.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": ذا كنت قد حصلت على درجة النجاح ، فسيتم إصدار شهادتك تلقائيًا.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": ن كنت قد حصلت على درجة نجاح، فإن شهادتك ستصدر تلقائيا.",
"courseCelebration.certificateHeader.unverified": "يجب إكمال عملية التحقق للحصول على شهادتك",
"courseCelebration.certificateHeader.requestable": "تهانينا، لقد تأهلت للحصول على شهادة!",
"courseCelebration.certificateHeader.upgradable": "قم بالترقية للحصول على شهادة معتمدة",
"courseCelebration.certificateHeader.upgradable": "الترقية الآن للحصول على شهادة معتمدة",
"courseCelebration.certificateImage": "عينة الشهادة",
"courseCelebration.completedCourseHeader": "لقد أكملت دورتك.",
"courseCelebration.completedCourseHeader": "لقد أكملت مساقك.",
"courseCelebration.congratulationsHeader": "تهانينا!",
"courseCelebration.congratulationsImage": "يرفع أربعة أشخاص أيديهم احتفاءً",
"courseExit.courseInProgressDescription": "يبدو أن هناك المزيد من المحتوى في هذه الدورة والذي سيتم إصداره في المستقبل. ابقى على اطلاع بتحديثات البريد الإلكتروني أو تحقق مرة أخرى من الدورة التدريبية الخاصة بك لمعرفة وقت توفر هذا المحتوى.",
"courseExit.courseInProgressHeader": "المزيد من المحتوى قريبا!",
"courseExit.courseInProgressDescription": "يبدو أن في هذا المساق مزيدا من المحتوى سيصدر مستقبلا. ستقبل. ترقب التحديثات عبر البريد الإلكتروني أو تفقّد هذا المساق لاحقًا لمعرفة موعد صدور هذا المحتوى.",
"courseExit.courseInProgressHeader": "مزيد من المحتوى قادم قريبا!",
"courseExit.dashboardLink": "لوحة المعلومات",
"courseExit.endOfCourseDescription": "لسوء الحظ، لست مؤهلًا الآن للحصول على شهادة. تحتاج إلى تحقيق درجة الاجتياز تؤهلك للحصول على شهادة.",
"courseExit.endOfCourseDescription": "مع الأسف، لست مؤهلًا حاليا للحصول على شهادة. أنت بحاجة لتحصيل درجة نجاح كي تتأهل للحصول على شهادة.",
"courseExit.endOfCourseHeader": "لقد أتممت المساق!",
"courseExit.endOfCourseTitle": "نهاية المساق",
"courseExit.idVerificationSupportLink": "اعرف المزيد عن عملية التحقق من الهوية",
"courseCelebration.linkedinAddToProfileButton": "إضافة إلى ملف شخصي على لينكد إن",
"courseExit.programs.microBachelors.learnMore": "تعرف على المزيد حول كيفية تقديم بيانات اعتماد البكالوريوس المصغر للحصول على ائتمان.",
"courseExit.programs.microMasters.learnMore": "تعرف على المزيد حول عملية تطبيق شهادات MicroMasters على درجة الماجستير.",
"courseExit.programs.microMasters.mastersMessage": ذا كنت مهتماً باستخدام شهادة MicroMasters الخاصة بك في برنامج Master، فيمكنك البدء اليوم!",
"courseExit.programs.microBachelors.learnMore": "اعرف المزيد عن كيفية طلب اعتماد مقابل مؤهل MicroBachelors الذي حصلت عليه.",
"courseExit.programs.microMasters.learnMore": "اعرف المزيد عن عملية تطبيق شهادات MicroMasters على شهادة الماستر / الماجستير.",
"courseExit.programs.microMasters.mastersMessage": ن كنت مهتماً باستخدام شهادة MicroMasters التي حصلت عليها للتسجيل في برنامج Master، فيمكنك البدء في ذلك اليوم!",
"learn.sequence.navigation.complete.button": "أكمل المساق",
"courseExit.nextButton.endOfCourse": "التالي (نهاية المساق)",
"courseExit.profileLink": "الملف الشخصي",
"courseExit.programs.lastCourse": "لقد أتممت المساق الأخير في {title}!",
"courseCelebration.requestCertificateBodyText": تصفح شهادتك ارفع الطلب أدناه.",
"courseCelebration.requestCertificateButton": "طلب شهادة",
"courseExit.searchOurCatalogLink": "ابحث في الدليل",
"courseCelebration.requestCertificateBodyText": لوصول إلى شهادتك، اطلبها أدناه.",
"courseCelebration.requestCertificateButton": "طلب الشهادة",
"courseExit.searchOurCatalogLink": "ابحث في دليلنا",
"courseCelebration.shareMessage": "شارك نجاحك على وسائل التواصل الاجتماعي أو البريد الإلكتروني.",
"courseExit.social.shareCompletionMessage": "أتممت للتو {title} في {platform}!",
"courseExit.upgradeButton": "ترقية الآن",
"courseExit.social.shareCompletionMessage": "لقد أتممت للتو \"{title}\" مع {platform}!",
"courseExit.upgradeButton": "الترقية الآن",
"courseExit.upgradeLink": "الترقية الآن",
"courseCelebration.verificationPending": "عملية التحقق من المعرّف الخاص بك معلّقة وستتوفر شهادتك بمجرد الموافقة.",
"courseExit.verifiedCertificateSupportLink": "تعرف أكثر على الشهادات المعتمدة",
"courseCelebration.verifyIdentityButton": "تحقق من الهوية الآن",
"courseCelebration.verificationPending": "عملية التحقق من هويتك في انتظار المراجعة وستتوفر شهادتك بمجرد الموافقة.",
"courseExit.verifiedCertificateSupportLink": "معرفة المزيد عن الشهادات المعتمدة",
"courseCelebration.verifyIdentityButton": "التحقق من الهوية الآن",
"courseCelebration.viewCertificateButton": "عرض شهاداتي",
"courseExit.viewCourseScheduleButton": "عرض الجدول الزمني للدورة",
"courseExit.viewCoursesButton": "عرض مساقاتي الملتحق بها",
"courseExit.viewCourseScheduleButton": "عرض الجدول الزمني للمساق",
"courseExit.viewCoursesButton": "عرض مساقاتي",
"courseExit.viewGradesButton": "عرض الدرجات",
"courseExit.programCompletion.dashboardMessage": "لعرض حالة الشهادة، تحقق من قسم البرامج في {programLink}.",
"courseExit.upgradeFootnote": "يتوفر الوصول إلى هذا المساق ومواده على لوحة المعلومات حتى {expirationDate}. لزيادة فترة إتاحة الوصول، {ترقيتها Link}.",
"courseExit.upgradeFootnote": "سيبقى الوصول إلى هذا المساق و مواده على لوحة المعلومات ممكنا إلى غاية {expirationDate}. لتمديد فترة الوصول، قم ب{upgradeLink}.",
"learn.course.license.allRightsReserved.text": "جميع الحقوق محفوظة",
"learn.course.license.creativeCommons.terms.preamble": "محتوى مرخّص كمشاع إبداعي وفق الشروط التالية:",
"learn.course.license.creativeCommons.terms.by": "الإسناد",
"learn.course.license.creativeCommons.terms.nc": "استخدام غير تجاري",
"learn.course.license.creativeCommons.terms.nd": "عدم الاقتباس",
"learn.course.license.creativeCommons.terms.sa": "مشاركة بالتساوي",
"learn.course.license.creativeCommons.terms.zero": "لا توجد عناصر",
"learn.course.license.creativeCommons.terms.by": "الإسناد (Attribution)",
"learn.course.license.creativeCommons.terms.nc": "غير تجاري (Non-Commercial)",
"learn.course.license.creativeCommons.terms.nd": "دون اشتقاقات (No Derivatives)",
"learn.course.license.creativeCommons.terms.sa": " المشاركة بالمثل (Share Alike)",
"learn.course.license.creativeCommons.terms.zero": "دون شروط",
"learn.course.license.creativeCommons.text": "بعض الحقوق محفوظة",
"learn.breadcrumb.navigation.course.home": "المساق ",
"notification.tray.container": "Notification tray",
"notification.open.button": "إظهار علبة الإشعارات",
"notification.close.button": "أغلق علبة الإشعارات",
"responsive.close.notification": "العودة إلى الدورة",
"notification.tray.title": "إشعارات",
"notification.tray.no.message": "ليس لديك إشعارات جديدة في هذا الوقت.",
"learn.contentLock.content.locked": "محتوى مغلق",
"learn.contentLock.complete.prerequisite": "يجب استيفاء المتطلبات الأساسية: '{priceqSectionName}' للوصول إلى هذا المحتوى.",
"learn.contentLock.goToSection": "انتقل إلى قسم المتطلبات الأساسية",
"learn.hiddenAfterDue.gradeAvailable": ذا كنت قد أكملت هذا الواجب ، فسيكون تقديرك متاحًا على {progressPage}.",
"learn.hiddenAfterDue.header": "انقضى الموعد النهائي لهذا الواجب.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "صفحة تقدمك",
"learn.honorCode.content": "الصدق والنزاهة الأكاديمية أمران مهمان بالنسبة إلى {siteName} والمؤسسات التي تقدم دورات وبرامج على موقع {siteName}. بالنقر فوق “أوافق“ أدناه ، أؤكد أنني قد قرأت وفهمت وسألتزم بـ {link} لموقع {siteName}.",
"learn.honorCode.name": "ميثاق الشرف الأكاديمي",
"notification.tray.container": "دُرج الإشعارات",
"notification.open.button": "إظهار دٌرج الإشعارات",
"notification.close.button": "إغلاق دٌرج الإشعارات",
"responsive.close.notification": "العودة إلى المساق",
"notification.tray.title": "الإشعارات",
"notification.tray.no.message": "ليست لديك إشعارات جديدة في الوقت الراهن.",
"learn.contentLock.content.locked": "المحتوى مقفل",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "انتقل إلى القسم المتطلّب.",
"learn.hiddenAfterDue.gradeAvailable": ن كنت قد أكملت هذا الواجب، فإن درجتك ستظهر في {progressPage}.",
"learn.hiddenAfterDue.header": "انقضى أجَل هذا الواجب.",
"learn.hiddenAfterDue.description": "نظرًا لانقضاء الأجَل، فإن هذا الواجب لم يعد متاحًا.",
"learn.hiddenAfterDue.progressPage": "صفحة التقدم",
"learn.honorCode.content": "الصدق و النزاهة الأكاديمية أمران مهمان بالنسبة إلى {siteName} و المؤسسات التي تقدم المساقات و البرامج على موقع {siteName}. بالنقر على “أنا موافق“ أدناه، أؤكد أني قد قرأت و فهمت و سألتزم ب{link} في موقع {siteName}.",
"learn.honorCode.name": "ميثاق الشرف",
"learn.honorCode.cancel": "إلغاء",
"learn.honorCode.agree": "أنا موافق",
"learn.lockPaywall.title": "الواجبات المقدرة غير متاحة لك",
"learn.lockPaywall.content": "قم بالترقية للوصول إلى الميزات المقفلة مثل هذه الميزة وتحقيق أقصى استفادة من الدورة التدريبية الخاصة بك.",
"learn.lockPaywall.content.pastExpiration": "انقضى الموعد النهائي للترقية لهذه الدورة. للترقية ، قم بالتسجيل في الجلسة التالية المتاحة.",
"learn.lockPaywall.courseDetails": "عرض تفاصيل الدورة",
"learn.lockPaywall.title": "الواجبات المنقّطة مقفلة",
"learn.lockPaywall.content": "قم بالترقية للوصول إلى الميزات المقفلة كهذه الميزة و تحقيق أقصى استفادة من مساقك.",
"learn.lockPaywall.content.pastExpiration": "لقد انقضى أجَل الترقية لهذا المساق.، سجل نفسك في الدورة التالية المتاحة.",
"learn.lockPaywall.courseDetails": "عرض تفاصيل المساق",
"learn.lockPaywall.example.alt": "عينة الشهادة",
"learn.lockPaywall.list.intro": "عندما تقوم بالترقية ، فإنك:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.lockPaywall.list.intro": "عندما تقوم بالترقية، فإنك:",
"learn.header.h2.placeholder": "قد يتم إنشاء عناوين المستوى 2 من طرف مزودي المساق مستقبلا.",
"learn.course.load.failure": "حدث خطأ أثناء تحميل هذا المساق.",
"learn.loading.honor.codk": "جارٍ تحميل ميثاق الشرف ...",
"learn.loading.content.lock": "جارٍ تحميل رسائل المحتوى المغلق...",
"learn.loading.learning.sequence": "جارِ تحميل سلسلة التعلّم...",
"learn.loading.honor.codk": "جارٍ تحميل نص ميثاق الشرف...",
"learn.loading.content.lock": "جارٍ تحميل رسالة المحتوى المغلق...",
"learn.loading.learning.sequence": "جارٍ تحميل السلسلة التعليمية...",
"learn.sequence.no.content": "لا يوجد محتوى هنا.",
"learn.sequence.navigation.next.button": "التالي",
"learn.sequence.navigation.next.up.button": "التالي: {title}",
"learn.sequence.navigation.previous.button": "السابق",
"learn.course.sequence.navigation.mobile.menu": "{current} من أصل {total}",
"discussions.sidebar.title": "نقاشات",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "إعادة توجيه...",
"learn.course.sequence.navigation.mobile.menu": "{current} من {total}",
"discussions.sidebar.title": "المناقشات",
"discussions.sidebar.open.button": "إظهار دٌرج المناقشات",
"learn.redirect.interstitial.message": "إعادة التوجيه جارية...",
"learn.loading.error": "خطأ: {error}",
"learning.celebration.emailBody": "ما الذي تقضي وقتك في تعلّمه؟",
"learning.social.shareEmail": "شارك تقدمك عبر البريد الإلكتروني.",
"learning.social.shareService": "شارك تقدمك على {service}.",
"general.altText.close": "إغلاق ",
"learning.logistration.register": "تسجيل",
"learning.logistration.login": "تسجيل الدخول",
"learning.logistration.register": "افتح حسابًا جديدًا",
"learning.logistration.login": "سجل دخولك",
"general.signIn.sentenceCase": "تسجيل الدخول",
"learn.course.tabs.navigation.overflow.menu": "المزيد...",
"learning.offer.screenReaderPrices": "السعر الأصلي: {originalPrice}, سعر الخصم: {discountedPrice}",
"learning.offer.screenReaderPrices": "السعر الأصلي: {originalPrice}، السعر المخفَّض: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "السعر الأصلي: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.upgradeButton.buttonText": "الترقية مقابل {pricing}",
"learning.upgradeNowButton.buttonText": "الترقية الآن مقابل {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "بما في ذلك أي تقدم",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "فوائد الترقية",
"learning.generic.upgradeNotification.expirationAccessLoss": "ستفقد كل إمكانية الوصول إلى هذه الدورة التدريبية ، {includingAnyProgress} ، في {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "انقضى الموعد النهائي للترقية لهذا المساق. للترقية ، قم بالتسجيل في الجلسة التالية المتاحة.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "أقل من 1 ساعة متبقية",
"learning.generic.upgradeNotification.expiration": "ستنتهي صلاحية الوصول إلى الدورة التدريبية في {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}٪ خصم المتعلم لأول مرة",
"learning.generic.upgradeNotification.accessExpiration": "قم بترقية التحاقك بالدورة اليوم",
"learning.generic.upgradeNotification.accessExpirationUrgent": "انتهاء صلاحية الوصول إلى الدورة التدريبية",
"learning.generic.upgradeNotification.accessExpirationPast": "انتهاء صلاحية الوصول إلى الدورة التدريبية",
"learning.generic.upgradeNotification.expirationAccessLoss": "ستفقد كل إمكانية الوصول إلى هذا المساق، {includingAnyProgress}، في {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "ترقية مساقك تتيح لك السعي للحصول شهادة معتمدة، و ترفع القيود عن العديد من الميزات. اعرف المزيد عن {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "لقد انقضى أجَل الترقية لهذا المساق. للترقية، سجل نفسك في الدورة التالية المتاحة.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, plural, \n one {بقي يوم واحد}\n two {بقي يومان}\n few {بقيت # أيام}\n many {بقي # يومًا}\n other {بقي # يوم}\n}",
"learning.generic.upgradeNotification.expirationHours": "بقيت {hourCount, plural, \n one {ساعة و احدة}\n two {ساعتان}\n few {# ساعات}\n many {# ساعة}\n}",
"learning.generic.upgradeNotification.expirationMinutes": "بقيت أقل من ساعة",
"learning.generic.upgradeNotification.expiration": "ستنتهي صلاحية الوصول إلى المساق في {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "انقضى أجَل الترقية في {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "خصم {percentage}% للمتعلم أول مرة",
"learning.generic.upgradeNotification.accessExpiration": "قم بترقية مساقك اليوم",
"learning.generic.upgradeNotification.accessExpirationUrgent": " نهاية صلاحية الوصول إلى المساق",
"learning.generic.upgradeNotification.accessExpirationPast": "نهاية صلاحية الوصول إلى المساق",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "اسعَ للحصول على شهادة معتمدة",
"learning.generic.upgradeNotification.code": "استخدم الكود {code} عند الدفع",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "شهادة تم التحقق منها",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "الواجبات المقدرة",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} لمحتوى ومواد الدورة التدريبية ، حتى بعد انتهاء الدورة",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "حدث خطأ؛ يرجى المحاولة مرة أخرى.",
"learning.generic.upgradeNotification.code": "استخدم الكود {code} عند الشراء",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "شهادة معتمدة",
"learning.generic.upsell.verifiedCertBullet": "تحصل على {verifiedCertLink} لإتمام المساق لتعرضها في سيرتك الذاتية.",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "الواجبات المنقّطة",
"learning.generic.upsell.unlockGradedBullet": "ترفع قيودك عن جميع أنشطة المساق، بما في ذلك {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "تستفيد من كل",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} محتوى و مواد المساق، حتى بعد انتهائه",
"learning.generic.upsell.supportMissionBullet.mission": "رسالتنا",
"learning.generic.upsell.supportMissionBullet": "تدعم {missionInBoldText} في {siteName}",
"masquerade-widget.userName.error.generic": "حدث خطأ ما. رجاءً حاول مجددًا",
"masquerade-widget.userName.input.placeholder": "اسم المستخدم أو البريد الإلكتروني",
"masquerade-widget.userName.input.label": "عرف كهذا المستخدم",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"masquerade-widget.userName.input.label": "تقمص دور هذا المستخدم",
"tours.abandonTour.launchTourCheckpoint.body": "تشعر بالضياع؟ ابدأ الجولة في أي وقت للحصول على بعض النصائح السريعة لتحقيق أقصى استفادة من التجربة.",
"tours.sequenceNavigationCheckpoint.body": "يتيح لك الشريط العلوي في مساقك الانتقال بسهولة إلى أقسام مختلفة ويظهر لك ما هو قادم.",
"tours.existingUserTour.launchTourCheckpoint.body": "لقد أضفنا مؤخرًا بعض الميزات الجديدة إلى تجربة المساق. هل أتريد بعض المساعدة في البحث حولك؟ قم بجولة لمعرفة المزيد.",
"tours.button.dismiss": "تجاهل",
"tours.button.next": "التالي",
"tours.button.okay": "تمام",
"tours.button.beginTour": "ابدأ الجولة",
"tours.button.launchTour": "انطلاق الجولة",
"tours.newUserModal.body": "دعنا نأخذ جولة سريعة في {siteName} حتى تتمكن من تحقيق أقصى استفادة من الدورة التدريبية الخاصة بك.",
"tours.button.okay": "حسنًا",
"tours.button.beginTour": "بدأ الجولة",
"tours.button.launchTour": "إطلاق الجولة",
"tours.newUserModal.body": "لنذهب في جولة سريعة على {siteName} تمكنك من تحقيق أقصى استفادة من مساقك.",
"tours.newUserModal.title.welcome": "مرحبًا بك في",
"tours.button.skipForNow": "تخطي في الوقت الراهن",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "يمكنك استكشاف أقسام الدورة باستخدام المخطط التفصيلي أدناه.",
"tours.outlineCheckpoint.title": "التحق في الدورة!",
"tours.tabNavigationCheckpoint.body": "يمكن استخدام علامات التبويب هذه للوصول إلى مواد الدورة التدريبية الأخرى ، مثل تقدمك والمنهج الدراسي وما إلى ذلك.",
"tours.tabNavigationCheckpoint.title": "موارد الدورة الإضافية",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "قم بترفية دورتك",
"tours.weeklyGoalsCheckpoint.body": "يؤدي تحديد خظة التعلم إلى زيادة احتمالية إتمام دورتك التدريبية.",
"tours.weeklyGoalsCheckpoint.title": "حدد خظة التعلم",
"tours.newUserModal.title": "{welcome} دورة {siteName}!",
"tours.button.skipForNow": "التخطي مؤقتا",
"tours.datesCheckpoint.body": "قد تكون التواريخ المهمة عونا لك للبقاء على السكة.",
"tours.datesCheckpoint.title": "ابق مٌطّلعًا على أهم التواريخ",
"tours.outlineCheckpoint.body": "يمكنك استكشاف أقسام المساق من خلال المخطط أدناه.",
"tours.outlineCheckpoint.title": "إبدأ المساق!",
"tours.tabNavigationCheckpoint.body": "يمكن استخدام هذه التبويبات للوصول إلى بقية مواد المساق الأخرى كتقدمك، و المنهاج، و غير ذلك.",
"tours.tabNavigationCheckpoint.title": "موارد المساق الإضافية",
"tours.upgradeCheckpoint.body": "اعمل للحصول على شهادة و استفد من كافة مواد المساق. قم بالترقية الآن!",
"tours.upgradeCheckpoint.title": "رفع القيود عن مساقك",
"tours.weeklyGoalsCheckpoint.body": "إن تحديد هدف يجعلك أقرب ﻹتمام المساق.",
"tours.weeklyGoalsCheckpoint.title": "حدد هدفًا للمساق",
"tours.newUserModal.title": "{welcome} مساق {siteName}!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, zero {# أنشطة} one {# نشاط} two {# أنشطة} few {# أنشطة} many {# أنشطة} other {# أنشطة}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, zero {# دقيقة} one {# دقيقة} two {# دقيقة} few {# دقيقة} many {# دقيقة} other {# دقائق}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, zero {# الدقائق} one {# اللحظة} two {# الدقائق} few {# الدقائق} many {# الدقائق} other {# دقائق}}",
"learning.effortEstimation.activities": "{activityCount, plural, zero {لا أنشطة} one {نشاط واحد} two {نشاطان} few {# أنشطة} many {# نشاطًا} other {# نشاط}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, zero {#د} one {#د} two {#د} few {#د} many {#د} other {#د}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, zero {# دقيقة} one {# دقيقة واحدة} two {# دقيقتان} few {# دقائق} many {# دقيقة} other {# دقيقة}}",
"learning.streakCelebration.congratulations": "تهانينا!",
"learning.streakCelebration.body": "استمر في التقدم ، أنت بوضع ممتاز!",
"learning.streakCelebration.button": "أبق على ما انت عليه !",
"learning.streakCelebration.buttonSrOnly": "إغلاق الوسائط والمتابعة",
"learning.streakCelebration.buttonAA759": "أكمل المساق",
"learning.streakCelebration.header": "ايام متتالية",
"learning.streakCelebration.factoidABoldedSection": "تزيد احتمالية اجتيازهم الدورة التدريبية بمقدار 20 ضعفًا",
"learning.streakCelebration.factoidBBoldedSection": "أكمل بمعدل 5 أضعاف محتوى الدورة التدريبية",
"learning.streakCelebration.streakDiscountMessage": "لقد قمت بتفعيل خصم {percent}٪ بمكنك استخدامه عند ترقية هذه الدورة التدريبية لفترة محدودة فقط.",
"learning.streakcelebration.factoida": "المستخدمون الذين يتعلمون {streak_length} يومًا متتاليًا {bolded_section} أكثر من أولئك الذين لا يتعلمون.",
"learning.streakcelebration.factoidb": "المستخدمون الذين يتعلمون {streak_length} يومًا متتاليًا {bolded_section} مقابل أولئك الذين لا يفعلون ذلك.",
"learning.streakCelebration.body": "واصل التقدم، حافظ على حماسك!",
"learning.streakCelebration.button": "واصل على هذا المنوال",
"learning.streakCelebration.buttonSrOnly": "إغلاق النافذة و المتابعة",
"learning.streakCelebration.buttonAA759": "المواصلة مع المساق",
"learning.streakCelebration.header": "أيام متتالية",
"learning.streakCelebration.factoidABoldedSection": "يزيد احتمال نجاحهم في مساقهم بـ 20 ضعفًا",
"learning.streakCelebration.factoidBBoldedSection": "يكملون في المتوسط أكثر من 5 أضعاف محتوى المساق الذي يكمله",
"learning.streakCelebration.streakDiscountMessage": "لقد حصلت على خصم {percent}% لترقية هذا المساق، و هو صالح لفترة محدودة فقط.",
"learning.streakcelebration.factoida": "إن المستخدمين الذين يتعلمون ل{streak_length, plural,\n two {يومين}\n few {# أيام}\n many {# يومًا}\n other {# يوم}\n} على التوالي {bolded_section} عن الذين لا يفعلون مثلهم.",
"learning.streakcelebration.factoidb": "إن المستخدمين الذين يتعلمون ل{streak_length, plural,\n two {يومين}\n few {# أيام}\n many {# يومًا}\n other {# يوم}\n} على التوالي {bolded_section} من لا يفعلون مثلهم.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "ينتهي في {date}.",
"learning.loading.failure": "حدث خطأ أثناء تحميل هذا المساق.",
"learning.loading": "يتم الآن تحميل صفحة المساق..."
"learning.loading.failure": "حدث خطأ ما أثناء تحميل هذا المساق.",
"learning.loading": "جارٍ تحميل صفحة المساق..."
}

View File

@@ -1 +0,0 @@
{}

447
src/i18n/messages/de.json Normal file
View File

@@ -0,0 +1,447 @@
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -94,6 +94,7 @@
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Aprobado en otro curso",
"learning.proctoringPanel.status.expiringSoon": "Expira pronto",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Estado actual de la integración:",
"learning.proctoringPanel.message.notStarted": "No has comenzado tu examen de integración.",
"learning.proctoringPanel.message.started": "Has comenzado tu examen de integración.",
@@ -103,7 +104,8 @@
"learning.proctoringPanel.message.error": "Se ha producido un error durante tu examen de integración. Vuelve a intentar la integración.",
"learning.proctoringPanel.message.otherCourseApproved": "Tu examen de ingreso ha sido aprobado en otro curso.",
"learning.proctoringPanel.detail.otherCourseApproved": "Si tu dispositivo ha cambiado, te recomendamos que realices el examen de ingreso de este curso para asegurarte de que tu configuración sigue cumpliendo los requisitos para el examen supervisado.",
"learning.proctoringPanel.message.expiringSoon": "Tu perfil de ingreso ha sido aprobado en otro curso. Sin embargo, tu estado de ingreso expirará pronto. Vuelve a completar el proceso de ingreso para asegurarte de que puedas seguir realizando los exámenes supervisados.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "Debes completar el proceso de integración antes de realizar cualquier examen supervisado. ",
"learning.proctoringPanel.generalInfoSubmitted": "Tu perfil enviado está en revisión.",
"learning.proctoringPanel.generalTime": "La revisión del perfil de ingreso puede tardar más de 2 días laborables.",
@@ -333,7 +335,7 @@
"notification.tray.title": "Notificaciones",
"notification.tray.no.message": "No tienes notificaciones nuevas en este momento.",
"learn.contentLock.content.locked": "Contenido Bloqueado",
"learn.contentLock.complete.prerequisite": "Debe completar el prerrequisito: '{prereqSectionName}'para acceder a este contenido.",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Ir a la Sección de Prerrequisitos",
"learn.hiddenAfterDue.gradeAvailable": "Si has completado esta tarea, tu calificación estará disponible en {progressPage}.",
"learn.hiddenAfterDue.header": "La fecha límite para esta tarea ha pasado.",

View File

@@ -94,6 +94,7 @@
"learning.proctoringPanel.status.error": "Erreur",
"learning.proctoringPanel.status.otherCourseApproved": "Approuvé dans un autre cours",
"learning.proctoringPanel.status.expiringSoon": "Expire bientôt",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Statut actuel d'intégration :",
"learning.proctoringPanel.message.notStarted": "Vous n'avez pas commencé votre examen d'intégration.",
"learning.proctoringPanel.message.started": "Vous avez commencé votre examen d'intégration.",
@@ -103,7 +104,8 @@
"learning.proctoringPanel.message.error": "Une erreur s'est produite lors de votre examen d'intégration. Veuillez réessayer l'intégration.",
"learning.proctoringPanel.message.otherCourseApproved": "Votre examen d'intégration a été approuvé dans un autre cours.",
"learning.proctoringPanel.detail.otherCourseApproved": "Si votre appareil a changé, nous vous recommandons de passer l'examen d'intégration de ce cours afin de vous assurer que votre configuration répond toujours aux exigences de surveillance.",
"learning.proctoringPanel.message.expiringSoon": "Votre profil d'intégration a été approuvé dans un autre cours. Cependant, votre statut d'intégration expire bientôt. Veuillez compléter à nouveau l'intégration afin que vous soyez en mesure de continuer à passer des examens surveillés.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "Vous devez terminer le processus d'intégration avant de passer un examen surveillé.",
"learning.proctoringPanel.generalInfoSubmitted": "Votre profil soumis est en cours de révision.",
"learning.proctoringPanel.generalTime": "L'examen du profil d'intégration peut prendre plus de 2 jours ouvrables.",
@@ -333,7 +335,7 @@
"notification.tray.title": "Notifications",
"notification.tray.no.message": "Vous n'avez aucune nouvelle notification pour le moment.",
"learn.contentLock.content.locked": "Contenu vérouillé",
"learn.contentLock.complete.prerequisite": "Vous devez compléter le prérequis: '{prereqSectionName}' pour accéder à ce contenu.",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Aller à la section des prérequis",
"learn.hiddenAfterDue.gradeAvailable": "Si vous avez complété ce travail, votre note est disponible sur {progressPage}.",
"learn.hiddenAfterDue.header": "La date d'échéance de ce devoir est passée.",

View File

@@ -0,0 +1,447 @@
{
"learning.accessExpiration.deadline": "Mettez à niveau avant le {date} pour obtenir un accès illimité au cours tant qu'il existe sur le site.",
"learning.accessExpiration.header": "Laccès à laudit expire le {date}",
"learning.accessExpiration.body": "Vous perdez tout accès à ce cours, y compris votre progression, le {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "Cet apprenant n'a plus accès à ce cours. Leur accès a expiré le {date}.",
"learning.accessExpiration.upgradeNow": "Mettez à niveau maintenant",
"learning.activeEnterprise.alert": "{changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "changer d'entreprise maintenant",
"learning.outline.alert.start.short": "Le cours commence dans {timeRemaining} à {courseStartTime}.",
"learning.outline.alert.end.long": "Ce cours se termine dans {timeRemaining}, le {courseEndDate}.",
"learning.outline.alert.end.calendar": "N'oubliez pas d'ajouter un rappel dans le calendrier!",
"instructorToolbar.pageBanner.courseHasNotStarted": "Cet apprenant n'a pas encore accès à ce cours. Le cours commencera le {date}.",
"learning.enrollment.alert": "Vous devez être inscrit dans le cours pour en voir le contenu.",
"learning.staff.enrollment.alert": "Vous regardez ce cours en tant que membre de l'équipe, vous n'êtes pas inscrits.",
"learning.enrollment.enrollNow.Inline": "Inscrivez-vous maintenant",
"learning.enrollment.enrollNow.Sentence": "Inscrivez-vous maintenant.",
"learning.enrollment.success": "Vous vous êtes inscrits avec succès à ce cours!",
"account-activation.alert.button": "Continuer vers {siteName}",
"account-activation.alert.message": "Nous avons envoyé un courriel à {boldEmail} contenant un lien pour activer votre compte. Il est introuvable ? Vérifiez votre dossier de pourriel ou\n {sendEmailTag}.",
"account-activation.resend.link": "renvoyer le courriel",
"learning.logistration.alert": "Pour afficher le contenu du cours, {signIn} ou {register}.",
"account-activation.alert.title": "Activez votre compte afin de pouvoir vous reconnecter",
"learn.sequence.entranceExamTextNotPassing": "Pour accéder aux supports de cours, vous devez obtenir au moins {entranceExamMinimumScorePct} % ou plus à cet examen. Votre score actuel est de {entranceExamCurrentScore} %.",
"learn.sequence.entranceExamTextPassed": "Votre score est de {entranceExamCurrentScore} %. Vous avez réussi l&#39;examen d&#39;entrée.",
"learning.dates.badge.completed": "Terminé",
"learning.dates.badge.dueNext": "À venir",
"learning.dates.badge.pastDue": "En retard",
"learning.dates.title": "Dates importantes",
"learning.dates.badge.today": "Aujourd'hui",
"learning.dates.badge.unreleased": "Pas encore publié",
"learning.dates.badge.verifiedOnly": "Vérifié seulement",
"learning.goals.unsubscribe.contact": "contacter le support",
"learning.goals.unsubscribe.description": "Vous ne recevrez plus de rappels par courriel au sujet de votre objectif pour {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Quelque chose s'est mal passé",
"learning.goals.unsubscribe.goToDashboard": "Aller au tableau de bord",
"learning.goals.unsubscribe.header": "Vous vous êtes désabonné des rappels d'objectifs",
"learning.goals.unsubscribe.loading": "Désinscription...",
"learning.goals.unsubscribe.errorDescription": "Nous n'avons pas pu vous désinscrire des courriels de rappel d'objectif. Veuillez réessayer plus tard ou {contactSupport} pour obtenir de l'aide.",
"learning.outline.alert.cert.earnedNotAvailable": "Ce cours se termine le {courseEndDateFormatted}. Les notes finales et toutes attestations obtenues\n devraient être disponibles après le {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Le statut de votre note et de votre attestation seront bientôt disponibles.",
"cert.alert.earned.ready.header": "Félicitations ! Votre attestation est prête.",
"cert.alert.notPassing.header": "Vous n'êtes pas éligible à une attestation",
"cert.alert.notPassing.button": "Voir les notes",
"learning.outline.alert.end.short": "Le cours termine dans {timeRemaining} à {courseEndTime}.",
"alert.enroll": " pour accéder au cours complet.",
"learning.privateCourse.signInOrRegister": "{signIn} ou {register}, puis inscrivez-vous à ce cours.",
"learning.outline.alert.scheduled-content.heading": "Plus de contenu sera bientôt disponible!",
"learning.outline.alert.scheduled-content.body": "Ce cours aura plus de contenu publié à une date future. Surveillez les mises à jour par courriel ou revenez voir ce cours pour les mises à jour.",
"learning.outline.alert.scheduled-content.button": "Voir l'horaire du cours",
"learning.outline.dates.all": "Voir toutes les dates de cours",
"learning.outline.goalButton.casual.text": "1 jour par semaine",
"learning.outline.goalButton.screenReader.text": "Décontracté",
"learning.outline.certificateAlt": "Exemple d'attestation",
"learning.outline.collapseAll": "Tout replier",
"learning.outline.completedAssignment": "Terminé",
"learning.outline.completedSection": "Section complétée",
"learning.outline.dates": "Dates importantes",
"learning.outline.editGoal": "Modifier l'objectif",
"learning.outline.expandAll": "Tout développer",
"learning.outline.goal": "Objectif",
"learning.outline.goalReminderDetail": "Si nous remarquons que vous n'atteignez pas votre objectif, nous vous enverrons un courriel de rappel.",
"learning.outline.goalUnsure": "Pas encore certain",
"learning.outline.handouts": "Documents du cours",
"learning.outline.incompleteAssignment": "Incomplet",
"learning.outline.incompleteSection": "Section incomplète",
"learning.outline.goalButton.intense.text": "5 jours par semaine",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "En savoir plus",
"learning.outline.altText.openSection": "Ouvert",
"learning.proctoringPanel.header": "Ce cours contient des examens surveillés",
"learning.outline.goalButton.regular.text": "3 jours par semaine",
"learning.outline.goalButton.regular.title": "Régulier",
"learning.outline.resumeBlurb": "Continuer où vous vous êtes arrêtés",
"learning.outline.resume": "Poursuivre le cours",
"learning.outline.setGoal": "Pour commencer, définissez un objectif de cours en sélectionnant l'option ci-dessous qui décrit le mieux votre plan d'apprentissage.",
"learning.outline.setGoalReminder": "Paramétrer un rappel des objectifs",
"learning.outline.goalButton.casual.title": "Paramétrer un style d'apprentissage",
"learning.outline.setWeeklyGoal": "Paramétrer un objectif d'apprentisage hebdomadaire",
"learning.outline.setWeeklyGoalDetail": "Paramétrer un objectif vous motivera à compléter le cours. Vous pouvez toujour le changer plus tard.",
"learning.outline.start": "Commencer le cours",
"learning.outline.startBlurb": "Commencer le cours aujourd'hui",
"learning.outline.tools": "Outils du cours",
"learning.outline.upgradeButton": "Mise-à-jour ({symbol}{price})",
"learning.outline.upgradeTitle": "Obtenir une attestation vérifiée",
"learning.outline.welcomeMessage": "Message de bienvenue",
"learning.outline.welcomeMessageShowMoreButton": "Afficher plus",
"learning.outline.welcomeMessageShowLessButton": "Afficher moins",
"learning.outline.goalWelcome": "Bienvenue à",
"learning.proctoringPanel.status.notStarted": "Pas commencé",
"learning.proctoringPanel.status.started": "Commencé",
"learning.proctoringPanel.status.submitted": "Soumis",
"learning.proctoringPanel.status.verified": "Vérifié",
"learning.proctoringPanel.status.rejected": "Rejeté",
"learning.proctoringPanel.status.error": "Erreur",
"learning.proctoringPanel.status.otherCourseApproved": "Approuvé dans un autre cours",
"learning.proctoringPanel.status.expiringSoon": "Expire bientôt",
"learning.proctoringPanel.status.expired": "Expiré",
"learning.proctoringPanel.status": "Statut actuel d'intégration :",
"learning.proctoringPanel.message.notStarted": "Vous n'avez pas commencé votre examen d'intégration.",
"learning.proctoringPanel.message.started": "Vous avez commencé votre examen d'intégration.",
"learning.proctoringPanel.message.submitted": "Vous avez soumis votre examen d'intégration.",
"learning.proctoringPanel.message.verified": "Votre examen d'intégration a été approuvé pour ce cours.",
"learning.proctoringPanel.message.rejected": "Votre examen d'intégration a été rejeté. Veuillez réessayer l'intégration.",
"learning.proctoringPanel.message.error": "Une erreur s'est produite lors de votre examen d'intégration. Veuillez réessayer l'intégration.",
"learning.proctoringPanel.message.otherCourseApproved": "Votre examen d'intégration a été approuvé dans un autre cours.",
"learning.proctoringPanel.detail.otherCourseApproved": "Si votre appareil a changé, nous vous recommandons de passer l'examen d'intégration de ce cours afin de vous assurer que votre configuration répond toujours aux exigences de surveillance.",
"learning.proctoringPanel.message.expiringSoon": "Votre profil d'intégration a été approuvé. Cependant, votre statut d'intégration expire bientôt. Veuillez terminer à nouveau l'intégration pour vous assurer que vous pourrez continuer à passer des examens surveillés.",
"learning.proctoringPanel.message.expired": "Votre statut d'intégration a expiré. Veuillez terminer à nouveau l'intégration pour continuer à passer des examens surveillés.",
"learning.proctoringPanel.generalInfo": "Vous devez terminer le processus d'intégration avant de passer un examen surveillé.",
"learning.proctoringPanel.generalInfoSubmitted": "Votre profil soumis est en cours de révision.",
"learning.proctoringPanel.generalTime": "L'examen du profil d'intégration peut prendre plus de 2 jours ouvrables.",
"learning.proctoringPanel.onboardingButton": "Complétez l'intégration",
"learning.proctoringPanel.onboardingPracticeButton": "Voir l'examen d'intégration",
"learning.proctoringPanel.onboardingButtonNotOpen": "Ouverture de l'intégration : {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Examiner les instructions et la configuration système requise",
"learning.proctoringPanel.onboardingButtonPastDue": "Intégration en retard",
"learning.outline.sequence-due": "{description} échéance {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "Afin de générer une attestation, vous devez effectuer une vérification d'identité. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Présentez vos réalisations sur LinkedIn ou votre curriculum vitae aujourd'hui. Vous pouvez télécharger votre certificat maintenant et y accéder à tout moment depuis votre tableau de bord et votre profil.",
"courseCelebration.certificateBody.notAvailable.endDate": "Les notes finales et toutes les attestations obtenues devraient être disponibles après le {endDate}.",
"progress.certificateStatus.notPassingHeader": "État de l'attestation",
"progress.certificateStatus.notPassingBody": "Pour être admissible à une attestation, vous devez avoir la note de passage.",
"progress.certificateStatus.inProgressHeader": "Plus de contenu sera bientôt disponible!",
"progress.certificateStatus.inProgressBody": "Il semble qu'il y ait plus de contenu dans ce cours qui sera publié dans le futur. Attendez les mises à jour par courriel ou revenez sur votre cours pour savoir quand ce contenu sera disponible.",
"progress.certificateStatus.requestableHeader": "État de l'attestation",
"progress.certificateStatus.requestableBody": "Félicitations, vous vous qualifiez pour une attestation! Pour accéder à votre attestation, demandez-la ci-dessous.",
"progress.certificateStatus.requestableButton": "Demander une attestation",
"progress.certificateStatus.unverifiedHeader": "État de l'attestation",
"progress.certificateStatus.unverifiedButton": "Vérifiez votre identité",
"progress.certificateStatus.courseCelebration.verificationPending": "La vérification de votre identité est en attente et votre attestation sera disponible une fois approuvé.",
"progress.certificateStatus.downloadableHeader": "Votre attestation est disponible!",
"progress.certificateStatus.viewableButton": "Voir mon attestation",
"progress.certificateStatus.notAvailableHeader": "État de l'attestation",
"progress.certificateBody.notAvailable.endDate": "Les notes finales et toutes les attestations obtenues devraient être disponibles après le {endDate}.",
"progress.certificateStatus.upgradeHeader": "Obtenez une attestation",
"progress.certificateStatus.upgradeBody": "Vous êtes dans une piste d'audit et n'êtes pas admissible à une attestation. Afin d'obtenir vers une attestation, mettez à niveau votre cours dès aujourd'hui.",
"progress.certificateStatus.upgradeButton": "Mettre à niveau maintenant",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Vérifiez votre identité pour bénéficier d'une attestation.",
"progress.certificateStatus.unverifiedHomeButton": "Vérifiez mon identité",
"progress.certificateStatus.unverifiedHomeBody": "Afin de générer une attestation pour ce cours, vous devez compléter le processus de vérification d'identité.",
"progress.completion.donut.label": "complété",
"progress.completion.body": "Cela représente la part du contenu du cours que vous avez terminé. Notez que certains contenus peuvent ne pas encore être publiés.",
"progress.completion.tooltip.locked": "Contenu que vous avez terminé.",
"progress.completion.header": "Achèvement du cours",
"progress.completion.tooltip": "Contenu auquel vous avez accès et que vous n'avez pas terminé.",
"progress.completion.tooltip.complete": "Contenu verrouillé et disponible uniquement pour ceux qui effectuent une mise à niveau.",
"progress.completion.donut.percentComplete": "Vous avez terminé {percent}% du contenu de ce cours.",
"progress.completion.donut.percentIncomplete": "Vous n'avez pas terminé {percent}% du contenu de ce cours auquel vous avez accès.",
"progress.completion.donut.percentLocked": "{percent}% du contenu de ce cours est verrouillé et disponible uniquement pour ceux qui effectuent une mise à niveau.",
"progress.creditInformation.creditNotEligible": "Vous n'êtes plus éligible à des crédits pour ce cours. Apprenez en plus sur {creditLink}.",
"progress.creditInformation.creditEligible": "\n Vous avez rempli les conditions pour les crédits de ce cours. Allez au\n {dashboardLink} pour acheter les crédits de cours. Apprenez en plus sur {creditLink}.",
"progress.creditInformation.creditPartialEligible": "Vous n'avez pas encore rempli les conditions pour les crédits. Apprenez en plus sur {creditLink}.",
"progress.creditInformation.completed": "Terminé",
"progress.creditInformation.courseCredit": "Crédit de cours",
"progress.creditInformation.minimumGrade": "Note minimale pour crédit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Conditions pour crédit de cours",
"progress.creditInformation.upcoming": "Prochainement",
"progress.creditInformation.verificationFailed": "Vérification échouée",
"progress.creditInformation.verificationSubmitted": "Vérification soumisse",
"progress.ungradedAlert": "Pour connaître la progression des aspects non notés du cours, consultez votre {outlineLink}.",
"progress.footnotes.droppableAssignments": "Le plus bas {numDroppable, plural, one{# {assignmentType} score} autre{# {assignmentType} scores}} supprimé.",
"progress.assignmentType": "Type d'évaluation",
"progress.footnotes.backToContent": "Retour au contenu",
"progress.courseGrade.body": "Cela représente votre note pondérée par rapport à la note nécessaire pour réussir ce cours.",
"progress.courseGrade.gradeBar.altText": "Votre note actuelle est {currentGrade}%. Une note pondérée de {passingGrade}% est nécessaire afin de réussir ce cours.",
"progress.courseGrade.footer.generic.passing": "Vous réussissez actuellement ce cours",
"progress.courseGrade.footer.nonPassing": "Une note pondérée de {passingGrade}% est nécessaire pour réussir ce cours.",
"progress.courseGrade.footer.passing": "Vous réussissez actuellement ce cours avec une note de {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "fonction verrouillée",
"progress.courseGrade.preview.headerLimited": "fonctionnalité limitée",
"progress.courseGrade.preview.header.ariaHidden": "Aperçu d'un ",
"progress.courseGrade.preview.body.unlockCertificate": "Déverrouillez pour afficher les notes et obtenir une attestation.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Déverrouillez pour travailler en vue d'une attestation.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "La date limite de mise à niveau dans ce cours est écoulée.",
"progress.courseGrade.preview.button.upgrade": "Mettre à niveau maintenant",
"progress.courseGrade.gradeRange.tooltip": "Plage de notes pour ce cours :",
"progress.courseOutline": "Plan de cours",
"progress.courseGrade.label.currentGrade": "Votre note actuelle",
"progress.detailedGrades": "Notes détaillées",
"progress.detailedGrades.emptyTable": "Vous n'avez actuellement aucun score de problème noté.",
"progress.footnotes.title": "Notes de bas de page du résumé des notes",
"progress.gradeSummary.grade": "Note",
"progress.courseGrade.grades": "Notes",
"progress.courseGrade.gradesAndCredit": "Notes & Crédit",
"progress.courseGrade.gradeRange.Tooltip": "Info-bulle de plage de notes",
"progress.gradeSummary": "Résumé des notes",
"progress.gradeSummary.limitedAccessExplanation": "Vous avez un accès limité aux devoirs notés dans le cadre du parcours audit de ce cours.",
"progress.gradeSummary.tooltip.alt": "Info-bulle des résumés de notes",
"progress.gradeSummary.tooltip.body": "La pondération de ce travail est déterminé par votre instructeur. En multipliant votre note par la pondération du travail, une note pondérée est calculée. Cette note pondérée servira à déterminer si vous réussissez le cours.",
"progress.noAcessToAssignmentType": "Vous n'avez pas accès aux devoirs de type {assignmentType}",
"progress.noAcessToSubsection": "Vous n'avez pas accès à la sous-section {displayName}",
"progress.courseGrade.label.passingGrade": "Note de passage",
"progress.detailedGrades.problemScore.label": "Score aux exercices : ",
"progress.detailedGrades.problemScore.toggleButton": "Basculer les scores des problèmes individuels pour {subsectionTitle}",
"progress.detailedGrades.overridden": "La note de section a été remplacée.",
"progress.score": "Note",
"progress.weight": "Poids",
"progress.weightedGrade": "Note pondérée",
"progress.weightedGradeSummary": "Votre résumé de note pondéré actuel",
"progress.header": "Votre progression",
"progress.header.targetUser": "Progression pour {username}",
"progress.link.studio": "Voir la notation dans Studio",
"progress.relatedLinks.datesCard.description": "Une vue du calendrier des dates d'échéance de vos cours et des devoirs à venir.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "Une vue d'ensemble du contenu de votre cours.",
"progress.relatedLinks.outlineCard.link": "Plan de cours",
"progress.relatedLinks": "Liens connexes",
"datesBanner.suggestedSchedule": "Nous avons établi un calendrier suggéré pour vous aider à rester sur la bonne voie. Mais ne vous inquiétez pas—il est flexible et vous permet d'apprendre à votre rythme.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Mise à niveau pour déverrouiller",
"datesBanner.upgradeToCompleteGradedBanner.body": "Vous auditez ce cours, ce qui signifie que vous ne pouvez pas participer aux devoirs notés. Pour terminer les devoirs notés dans le cadre de ce cours, vous pouvez mettre à niveau dès aujourd'hui.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Mettez à niveau maintenant",
"datesBanner.upgradeToResetBanner.body": "Pour vous maintenir sur la bonne voie, vous pouvez mettre à jour ce calendrier et déplacer les affectations échues dans le futur. Ne vous inquiétez pas—vous ne perdrez aucun des progrès que vous avez réalisés lorsque vous décalez vos dates d'échéance.",
"datesBanner.upgradeToResetBanner.button": "Réviser votre type d'inscription pour déplacer les dates limites",
"datesBanner.resetDatesBanner.header": "Il semblerait que vous ayez manqué des dates limites importantes de votre horaire suggéré.",
"datesBanner.resetDatesBanner.body": "Pour vous maintenir sur la bonne voie, vous pouvez mettre à jour ce calendrier et déplacer les affectations échues dans le futur. Ne vous inquiétez pas—vous ne perdrez aucun des progrès que vous avez réalisés lorsque vous décalez vos dates d'échéance.",
"datesBanner.resetDatesBanner.button": "Déplacer les dates limites",
"learn.navigation.course.tabs.label": "Matériel de cours",
"unit.bookmark.button.add.bookmark": "Marquer cette page",
"unit.bookmark.button.remove.bookmark": "Ajouté aux signets",
"learning.celebration.completed": "Vous avez complété la première section de votre cours.",
"learning.celebration.congrats": "Félicitations!",
"learning.celebration.earned": "Vous l'avez mérité!",
"learning.celebration.emailSubject": "Je complèterai bientôt {title} en ligne avec {platform}!",
"learning.celebration.forward": "Continuer",
"learning.celebration.goalMet": "Vous avez atteint votre objectif!",
"learning.celebration.keepItUp": "Continuez comme ça",
"learning.celebration.share": "Prenez un moment pour célébrer et partager votre progrès.",
"learning.celebration.social": "Je suis sur le point de terminer {title} en ligne avec {platform}. Que passez-vous votre temps à apprendre?",
"learning.celebration.goalCongrats": "Félicitations, vous avez atteint votre objectif d'apprentissage de {nTimes} par semaine.",
"learning.celebration.setGoal": "Fixer un objectif peut vous aider {strongText} dans votre cours.",
"calculator.instructions.button.label": "Instructions de la calculatrice",
"calculator.instructions": "Pour plus d'informations, consultez le {expressions_link}.",
"calculator.instructions.support.title": "Centre d'aide",
"calculator.instructions.useful.tips": "Conseils utiles:",
"calculator.hint1": "Utiliser les parenthèses () afin de rendre les expressions plus claires. Vous pouvez utiliser des parenthèses à l'intérieur d'autres parenthèses.",
"calculator.hint2": "Ne pas utiliser d'espaces dans ces expressions.",
"calculator.hint3": "Pour les constantes, indiquer la multiplication explicitement (exemple : 5*c).",
"calculator.hint4": "Pour les suffixes, indiquer le nombre et le suffixe sans espace (exemple : 5c).",
"calculator.hint5": "Pour les fonctions, taper le nom de la fonction, puis l'expression entre parenthèses.",
"calculator.instruction.table.to.use.heading": "À utiliser",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Exemples",
"calculator.instruction.table.to.use.numbers": "Nombres",
"calculator.instruction.table.to.use.numbers.type1": "Nombres entiers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Nombres décimaux",
"calculator.instruction.table.to.use.operators": "Opérateurs",
"calculator.instruction.table.to.use.operators.type1": "(additionner, soustraire, multiplier, diviser)",
"calculator.instruction.table.to.use.operators.type2": "(élever à une puissance)",
"calculator.instruction.table.to.use.operators.type3": "(résistances parallèles)",
"calculator.instruction.table.to.use.constants": "Constantes",
"calculator.instruction.table.to.use.affixes": "Suffixes",
"calculator.instruction.table.to.use.affixes.type": "Signe pourcentage (%)",
"calculator.instruction.table.to.use.basic.functions": "Fonctions de base",
"calculator.instruction.table.to.use.trig.functions": "Fonctions trigonométriques",
"calculator.instruction.table.to.use.scientific.notation": "Notation scientifique",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} et l'exposant",
"calculator.instruction.table.to.use.scientific.notation.type2": "notation {notationSyntax}",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} et l'exposant",
"calculator.button.label": "Calculatrice",
"calculator.input.field.label": "Entrée de la calculatrice",
"calculator.submit.button.label": "Calculer",
"calculator.result.field.label": "Résultat de la calculatrice",
"calculator.result.field.placeholder": "Résultat",
"notes.button.show": "Afficher les notes",
"notes.button.hide": "Masquer les notes",
"courseExit.catalogSearchSuggestion": "Vous souhaitez en apprendre plus? {searchOurCatalogLink} pour trouver plus de cours et de programmes à explorer.",
"courseCelebration.certificateBody.available": "\n Affichez vos accomplissements sur LinkedIn ou votre CV dès aujourd'hui.\n Vous pouvez télécharger votre attestation maintenant et y accéder à tout moment depuis vos\n {dashboardLink} et {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "Ce cours se termine le {endDate}. Les notes finales et toutes attestations obtenues\n devraient être disponibles après le {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "Afin de générer une attestation, vous devez effectuer une vérification d'identité.\n {idVerificationSupportLink} maintenant.",
"courseCelebration.certificateBody.upgradable": "Il nest pas trop tard pour effectuer une mise à niveau. Pour {price}, vous débloquerez l'accès à tous les\n devoirs dans ce cours. À la fin, vous recevrez une attestation qui est une source\n d'informations précieuses pour améliorer vos perspectives d'emploi et faire progresser votre carrière, ou mettre en valeur votre\n attestation dans des demandes d'admission.",
"courseCelebration.upgradeDiscountCodePrompt": "Utilisez le code {code} lors du paiement pour {percent}% de réduction!",
"courseCelebration.recommendations.heading": "Continuez à développer vos compétences avec ces cours!",
"courseCelebration.recommendations.label": "Cours",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explorez plus de cours",
"courseCelebration.recommendations.loading_recommendations": "Chargement des recommandations",
"courseCelebration.recommendations.card.schools.label": "Écoles et Partenaires",
"courseCelebration.dashboardInfo": "Vous pouvez accéder à ce cours et à ses supports sur votre {dashboardLink}.",
"courseExit.programs.applyForCredit": "Demander un crédit",
"courseCelebration.certificateHeader.downloadable": "Votre attestation est disponible!",
"courseCelebration.certificateHeader.notAvailable": "Le statut de votre note et de votre attestation seront bientôt disponibles.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "Si vous avez obtenu une note de passage, votre attestation sera automatiquement générée.",
"courseCelebration.certificateHeader.unverified": "Vous devez avoir complété votre vérification pour recevoir votre attestation.",
"courseCelebration.certificateHeader.requestable": "Félicitations, vous vous qualifiez pour une attestation!",
"courseCelebration.certificateHeader.upgradable": "Mettre à niveau pour obtenir une attestation",
"courseCelebration.certificateImage": "Exemple d'attestation",
"courseCelebration.completedCourseHeader": "Vous avez complété ce cours.",
"courseCelebration.congratulationsHeader": "Félicitations!",
"courseCelebration.congratulationsImage": "Quatre personnes levant leurs mains pour célébrer",
"courseExit.courseInProgressDescription": "Il semble qu'il y ait plus de contenu dans ce cours qui sera publié dans le futur. Attendez les mises à jour par courriel ou revenez sur votre cours pour savoir quand ce contenu sera disponible.",
"courseExit.courseInProgressHeader": "Plus de contenu sera bientôt disponible!",
"courseExit.dashboardLink": "Tableau de bord",
"courseExit.endOfCourseDescription": "Malheureusement, vous n'êtes actuellement pas éligible pour une attestatation. Vous devez recevoir une note de passage pour être admissible à une attestation.",
"courseExit.endOfCourseHeader": "Vous avez atteint la fin du cours!",
"courseExit.endOfCourseTitle": "Fin du cours",
"courseExit.idVerificationSupportLink": "En savoir plus sur la vérification d'identité",
"courseCelebration.linkedinAddToProfileButton": "Ajouter au profil LinkedIn",
"courseExit.programs.microBachelors.learnMore": "Apprenez-en davantage sur la façon dont votre accréditation MicroBachelors peut être utilisée pour demander un crédit.",
"courseExit.programs.microMasters.learnMore": "En savoir plus sur le processus dapplication des attestations MicroMasters aux diplômes de maîtrise.",
"courseExit.programs.microMasters.mastersMessage": "Si vous souhaitez utiliser votre attestation MicroMasters en vue d'un programme de maîtrise, vous pouvez commencer dès aujourd'hui!",
"learn.sequence.navigation.complete.button": "Complétez le cours",
"courseExit.nextButton.endOfCourse": "Suivant (fin du cours)",
"courseExit.profileLink": "Profil",
"courseExit.programs.lastCourse": "Vous avez terminé le dernier cours de {title}!",
"courseCelebration.requestCertificateBodyText": "Pour accéder à votre certificat, demandez-le ci-dessous.",
"courseCelebration.requestCertificateButton": "Demander une attestation",
"courseExit.searchOurCatalogLink": "Rechercher dans notre catalogue",
"courseCelebration.shareMessage": "Partagez votre succès sur les réseaux sociaux ou par courriel.",
"courseExit.social.shareCompletionMessage": "Je viens de terminer {title} avec {platform}!",
"courseExit.upgradeButton": "Mettez à niveau maintenant",
"courseExit.upgradeLink": "mettre à jour maintenant",
"courseCelebration.verificationPending": "La vérification de votre identité est en attente et votre attestation sera disponible une fois approuvé.",
"courseExit.verifiedCertificateSupportLink": "En savoir plus sur les attestations",
"courseCelebration.verifyIdentityButton": "Vérifiez votre identité maintenant",
"courseCelebration.viewCertificateButton": "Voir mon attestation",
"courseExit.viewCourseScheduleButton": "Voir le calendrier de cours",
"courseExit.viewCoursesButton": "Voir mes cours",
"courseExit.viewGradesButton": "Voir les notes",
"courseExit.programCompletion.dashboardMessage": "Pour afficher l'état de votre attestation, consultez la section Programmes de votre {programLink}.",
"courseExit.upgradeFootnote": "L'accès à ce cours et à ses supports est disponible sur votre tableau de bord jusqu'au {expirationDate}. Pour étendre l'accès, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "Tous Droits Réservés",
"learn.course.license.creativeCommons.terms.preamble": "Contenu sous license Creative Commons, avec les conditions suivantes:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Non commercial",
"learn.course.license.creativeCommons.terms.nd": "Pas de travaux dérivés",
"learn.course.license.creativeCommons.terms.sa": "Partage à l'identique",
"learn.course.license.creativeCommons.terms.zero": "Aucun termes",
"learn.course.license.creativeCommons.text": "Certains droits réservés",
"learn.breadcrumb.navigation.course.home": "Cours",
"notification.tray.container": "Barre de notification",
"notification.open.button": "Afficher la barre de notification",
"notification.close.button": "Fermer la barre de notification",
"responsive.close.notification": "Retour au cours",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "Vous n'avez aucune nouvelle notification pour le moment.",
"learn.contentLock.content.locked": "Contenu verrouillé",
"learn.contentLock.complete.prerequisite": "Vous devez remplir le prérequis : ''{prereqSectionName}'' pour accéder à ce contenu.",
"learn.contentLock.goToSection": "Aller à la section des prérequis",
"learn.hiddenAfterDue.gradeAvailable": "Si vous avez complété ce travail, votre note est disponible sur {progressPage}.",
"learn.hiddenAfterDue.header": "La date d'échéance pour ce devoir est passée.",
"learn.hiddenAfterDue.description": "Ce devoir n'est plus disponible, car la date limite est passée.",
"learn.hiddenAfterDue.progressPage": "page de progression",
"learn.honorCode.content": "L'honnêteté et l'intégrité académique sont importantes pour {siteName} et les institutions offrant des cours et des programmes sur le site {siteName}. En cliquant sur « J'accepte » ci-dessous, je confirme que j'ai lu, compris et respecterai le {link} pour le site {siteName}.",
"learn.honorCode.name": "Code d'honneur",
"learn.honorCode.cancel": "Annuler",
"learn.honorCode.agree": "Je suis d'accord",
"learn.lockPaywall.title": "Les devoirs notés sont verrouillés",
"learn.lockPaywall.content": "Mettez à niveau pour accéder à des fonctionnalités verrouillées comme celle-ci et tirer le meilleur parti de votre cours.",
"learn.lockPaywall.content.pastExpiration": "La date limite de mise à niveau pour ce cours est dépassée. Pour mettre à niveau, inscrivez-vous à la prochaine session disponible.",
"learn.lockPaywall.courseDetails": "Afficher les détails du cours",
"learn.lockPaywall.example.alt": "Exemple d'attestation",
"learn.lockPaywall.list.intro": "Lorsque vous effectuez une mise à niveau, vous :",
"learn.header.h2.placeholder": "Un titre de niveau 2 pourra être créé par les fournisseurs de cours dans le futur.",
"learn.course.load.failure": "Il y a eu une erreur lors du chargement de ce cours.",
"learn.loading.honor.codk": "Chargement de la messagerie du code d'honneur...",
"learn.loading.content.lock": "Chargement du contenu bloqué de messagerie...",
"learn.loading.learning.sequence": "Chargement de la séquence d'apprentissage...",
"learn.sequence.no.content": "Il n'y a pas de contenu ici.",
"learn.sequence.navigation.next.button": "Suivant",
"learn.sequence.navigation.next.up.button": "Prochaine étape : {title}",
"learn.sequence.navigation.previous.button": "Précédent",
"learn.course.sequence.navigation.mobile.menu": "{current} de {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Afficher le plateau des discussions",
"learn.redirect.interstitial.message": "Redirection...",
"learn.loading.error": "Erreur : {error}",
"learning.celebration.emailBody": "Qu'apprenez-vous durant votre temps libre?",
"learning.social.shareEmail": "Partagez vos progrès par courriel.",
"learning.social.shareService": "Partagez vos progrès sur {service}.",
"general.altText.close": "Fermer",
"learning.logistration.register": "inscription",
"learning.logistration.login": "se connecter",
"general.signIn.sentenceCase": "Connexion",
"learn.course.tabs.navigation.overflow.menu": "Plus...",
"learning.offer.screenReaderPrices": "Prix d'origine: {originalPrice}, prix réduit : {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Prix d'origine : {originalPrice}",
"learning.upgradeButton.buttonText": "Mise à niveau pour {pricing}",
"learning.upgradeNowButton.buttonText": "Mettez à niveau maintenant pour {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "incluant tous les progrès",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "bénéfices d'une mise à niveau",
"learning.generic.upgradeNotification.expirationAccessLoss": "Vous perdez tout accès à ce cours, {includingAnyProgress}, le {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Mettre à niveau votre cours vous permettra de tenter d'obtenir une attestation vérifié et d'avoir accès à beaucoup d'autres fonctionnalités. Apprenez en plus à propos des {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "La date limite de mise à niveau pour ce cours est dépassée. Pour mettre à niveau, inscrivez-vous à la prochaine session disponible.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} restant",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} restant",
"learning.generic.upgradeNotification.expirationMinutes": "Il reste moins de 1 heure",
"learning.generic.upgradeNotification.expiration": "L'accès au cours expirera le {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Date limite de mise à jour passée le {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% de rabais pour les nouveaux apprenants",
"learning.generic.upgradeNotification.accessExpiration": "Mettre à niveau votre cours aujourd'hui",
"learning.generic.upgradeNotification.accessExpirationUrgent": "L'accès au cours expire",
"learning.generic.upgradeNotification.accessExpirationPast": "L'accès au cours expire",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Obtenir une attestation vérifiée",
"learning.generic.upgradeNotification.code": "Utilisez le code {code} lors du paiement",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "attestation vérifiée",
"learning.generic.upsell.verifiedCertBullet": "Obtenez un {verifiedCertLink} d'achèvement pour le mettre en valeur sur votre CV",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "évaluations notées",
"learning.generic.upsell.unlockGradedBullet": "Débloquer votre accès à toutes les activités du cours, incluant {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Accès complet",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} aux contenus et matériaux du cours, même après la fin du cours",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Soutenez notre {missionInBoldText} à {siteName}",
"masquerade-widget.userName.error.generic": "Une erreur est survenue; veuillez réessayer.",
"masquerade-widget.userName.input.placeholder": "Nom d'utilisateur ou courriel",
"masquerade-widget.userName.input.label": "Se faire passer pour cet utilisateur",
"tours.abandonTour.launchTourCheckpoint.body": "Vous êtes perdus ? Lancer une visite guidée en tout temps pour des conseils rapides afin de profiter au maximum de l'expérience.",
"tours.sequenceNavigationCheckpoint.body": "La barre de menu en haut dans le cours vous permet de vous déplacer rapidement entre les diverses sections et vous montre ce qui s'en vient.",
"tours.existingUserTour.launchTourCheckpoint.body": "Nous avons récemment ajouté des nouvelles fonctions à l'expérience de cours. Vous avez besoin d'aide à les trouver ? Prenez un tour guidé pour en apprendre plus.",
"tours.button.dismiss": "Rejeter",
"tours.button.next": "Suivant",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Commencer la visite guidée",
"tours.button.launchTour": "Lancer la visite guidée",
"tours.newUserModal.body": "Faisons un tour rapide de {siteName} afin que vous puissiez tirer le meilleur parti de votre cours.",
"tours.newUserModal.title.welcome": "Bienvenu à votre",
"tours.button.skipForNow": "Ignorer pour l'instant",
"tours.datesCheckpoint.body": "Dates importantes afin de vous maintenir sur la bonne voie.",
"tours.datesCheckpoint.title": "Restez au courant des dates importantes",
"tours.outlineCheckpoint.body": "Vous pouvez explorer les sections du cours en utilisant la table des matières ci-dessous.",
"tours.outlineCheckpoint.title": "Suivez le cours !",
"tours.tabNavigationCheckpoint.body": "Ces onglets peuvent être utilisés pour accéder aux autres ressources de cours, tel que votre progression, le plan de cours, etc.",
"tours.tabNavigationCheckpoint.title": "Ressources de cours additionnelles",
"tours.upgradeCheckpoint.body": "Travaillez vers un certificat et obtenez un accès complet au matériel de cours. Mettre à jour maintenant!",
"tours.upgradeCheckpoint.title": "Débloquez votre cours",
"tours.weeklyGoalsCheckpoint.body": "Paramétrer un objectif encourage à compléter votre cours.",
"tours.weeklyGoalsCheckpoint.title": "Paramétrer un objectif de cours",
"tours.newUserModal.title": "{welcome} {siteName} au cours !",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activité} many {# activités} other {# activités}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} many {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} many {# minutes} other {# minutes}}",
"learning.streakCelebration.congratulations": "Félicitations!",
"learning.streakCelebration.body": "Continuez comme ça, vous êtes sur une lancée!",
"learning.streakCelebration.button": "Continuez ainsi",
"learning.streakCelebration.buttonSrOnly": "Fermer le modal et continuer",
"learning.streakCelebration.buttonAA759": "Continuer le cours",
"learning.streakCelebration.header": "série de jours",
"learning.streakCelebration.factoidABoldedSection": "ont 20 fois plus de chances de réussir leur cours",
"learning.streakCelebration.factoidBBoldedSection": "termine 5 fois plus de contenu de cours en moyenne",
"learning.streakCelebration.streakDiscountMessage": "Vous avez obtenu, pour un temps limité, un rabais de {percent}% pour mettre à niveau ce cours.",
"learning.streakcelebration.factoida": "Les utilisateurs qui apprennent {streak_length} jours d'affilée {bolded_section} que ceux qui n'apprennent pas.",
"learning.streakcelebration.factoidb": "Les utilisateurs qui apprennent {streak_length} jours d'affilée {bolded_section} par rapport à ceux qui ne le font pas.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Termine {date}.",
"learning.loading.failure": "Il y a eu une erreur lors du chargement de ce cours.",
"learning.loading": "Chargement de vos cours..."
}

View File

@@ -1 +0,0 @@
{}

447
src/i18n/messages/hi.json Normal file
View File

@@ -0,0 +1,447 @@
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -1 +0,0 @@
{}

447
src/i18n/messages/it.json Normal file
View File

@@ -0,0 +1,447 @@
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1 +0,0 @@
{}

447
src/i18n/messages/pt.json Normal file
View File

@@ -0,0 +1,447 @@
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1 +1,447 @@
{}
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1 +1,447 @@
{}
{
"learning.accessExpiration.deadline": "Upgrade by {date} to get unlimited access to the course as long as it exists on the site.",
"learning.accessExpiration.header": "Audit Access Expires {date}",
"learning.accessExpiration.body": "You lose all access to this course, including your progress, on {date}.",
"instructorToolbar.pageBanner.courseHasExpired": "This learner no longer has access to this course. Their access expired on {date}.",
"learning.accessExpiration.upgradeNow": "Upgrade now",
"learning.activeEnterprise.alert": " {changeActiveEnterprise}.",
"learning.activeEnterprise.change.alert": "change enterprise now",
"learning.outline.alert.start.short": "Course starts {timeRemaining} at {courseStartTime}.",
"learning.outline.alert.end.long": "This course is ending {timeRemaining} on {courseEndDate}.",
"learning.outline.alert.end.calendar": "Dont forget to add a calendar reminder!",
"instructorToolbar.pageBanner.courseHasNotStarted": "This learner does not yet have access to this course. The course starts on {date}.",
"learning.enrollment.alert": "You must be enrolled in the course to see course content.",
"learning.staff.enrollment.alert": "You are viewing this course as staff, and are not enrolled.",
"learning.enrollment.enrollNow.Inline": "Enroll now",
"learning.enrollment.enrollNow.Sentence": "Enroll now.",
"learning.enrollment.success": "You've successfully enrolled in this course!",
"account-activation.alert.button": "Continue to {siteName}",
"account-activation.alert.message": "We sent an email to {boldEmail} with a link to activate your account. Cant find it? Check your spam folder or\n {sendEmailTag}.",
"account-activation.resend.link": "resend the email",
"learning.logistration.alert": "To see course content, {signIn} or {register}.",
"account-activation.alert.title": "Activate your account so you can log back in",
"learn.sequence.entranceExamTextNotPassing": "To access course materials, you must score {entranceExamMinimumScorePct}% or higher on this exam. Your current score is {entranceExamCurrentScore}%.",
"learn.sequence.entranceExamTextPassed": "Your score is {entranceExamCurrentScore}%. You have passed the entrance exam.",
"learning.dates.badge.completed": "Completed",
"learning.dates.badge.dueNext": "Due next",
"learning.dates.badge.pastDue": "Past due",
"learning.dates.title": "Important dates",
"learning.dates.badge.today": "Today",
"learning.dates.badge.unreleased": "Not yet released",
"learning.dates.badge.verifiedOnly": "Verified only",
"learning.goals.unsubscribe.contact": "contact support",
"learning.goals.unsubscribe.description": "You will no longer receive email reminders about your goal for {courseTitle}.",
"learning.goals.unsubscribe.errorHeader": "Something went wrong",
"learning.goals.unsubscribe.goToDashboard": "Go to dashboard",
"learning.goals.unsubscribe.header": "Youve unsubscribed from goal reminders",
"learning.goals.unsubscribe.loading": "Unsubscribing…",
"learning.goals.unsubscribe.errorDescription": "We were unable to unsubscribe you from goal reminder emails. Please try again later or {contactSupport} for help.",
"learning.outline.alert.cert.earnedNotAvailable": "This course ends on {courseEndDateFormatted}. Final grades and any earned certificates are\n scheduled to be available after {certificateAvailableDate}.",
"cert.alert.earned.unavailable.header.v2": "Your grade and certificate status will be available soon.",
"cert.alert.earned.ready.header": "Congratulations! Your certificate is ready.",
"cert.alert.notPassing.header": "You are not yet eligible for a certificate",
"cert.alert.notPassing.button": "View grades",
"learning.outline.alert.end.short": "This course is ending {timeRemaining} at {courseEndTime}.",
"alert.enroll": " to access the full course.",
"learning.privateCourse.signInOrRegister": "{signIn} or {register} and then enroll in this course.",
"learning.outline.alert.scheduled-content.heading": "More content is coming soon!",
"learning.outline.alert.scheduled-content.body": "This course will have more content released at a future date. Look out for email updates or check back on this course for updates.",
"learning.outline.alert.scheduled-content.button": "View Course Schedule",
"learning.outline.dates.all": "View all course dates",
"learning.outline.goalButton.casual.text": "1 day a week",
"learning.outline.goalButton.screenReader.text": "Casual",
"learning.outline.certificateAlt": "Example Certificate",
"learning.outline.collapseAll": "Collapse all",
"learning.outline.completedAssignment": "Completed",
"learning.outline.completedSection": "Completed section",
"learning.outline.dates": "Important dates",
"learning.outline.editGoal": "Edit goal",
"learning.outline.expandAll": "Expand all",
"learning.outline.goal": "Goal",
"learning.outline.goalReminderDetail": "If we notice youre not quite at your goal, well send you an email reminder.",
"learning.outline.goalUnsure": "Not sure yet",
"learning.outline.handouts": "Course Handouts",
"learning.outline.incompleteAssignment": "Incomplete",
"learning.outline.incompleteSection": "Incomplete section",
"learning.outline.goalButton.intense.text": "5 days a week",
"learning.outline.goalButton.intense.title": "Intense",
"learning.outline.learnMore": "Learn More",
"learning.outline.altText.openSection": "Open",
"learning.proctoringPanel.header": "This course contains proctored exams",
"learning.outline.goalButton.regular.text": "3 days a week",
"learning.outline.goalButton.regular.title": "Regular",
"learning.outline.resumeBlurb": "Pick up where you left off",
"learning.outline.resume": "Resume course",
"learning.outline.setGoal": "To start, set a course goal by selecting the option below that best describes your learning plan.",
"learning.outline.setGoalReminder": "Set a goal reminder",
"learning.outline.goalButton.casual.title": "Set a learning goal style.",
"learning.outline.setWeeklyGoal": "Set a weekly learning goal",
"learning.outline.setWeeklyGoalDetail": "Setting a goal motivates you to finish the course. You can always change it later.",
"learning.outline.start": "Start course",
"learning.outline.startBlurb": "Begin your course today",
"learning.outline.tools": "Course Tools",
"learning.outline.upgradeButton": "Upgrade ({symbol}{price})",
"learning.outline.upgradeTitle": "Pursue a verified certificate",
"learning.outline.welcomeMessage": "Welcome Message",
"learning.outline.welcomeMessageShowMoreButton": "Show More",
"learning.outline.welcomeMessageShowLessButton": "Show Less",
"learning.outline.goalWelcome": "Welcome to",
"learning.proctoringPanel.status.notStarted": "Not Started",
"learning.proctoringPanel.status.started": "Started",
"learning.proctoringPanel.status.submitted": "Submitted",
"learning.proctoringPanel.status.verified": "Verified",
"learning.proctoringPanel.status.rejected": "Rejected",
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
"learning.proctoringPanel.message.submitted": "You have submitted your onboarding exam.",
"learning.proctoringPanel.message.verified": "Your onboarding exam has been approved in this course.",
"learning.proctoringPanel.message.rejected": "Your onboarding exam has been rejected. Please retry onboarding.",
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
"learning.proctoringPanel.onboardingButton": "Complete Onboarding",
"learning.proctoringPanel.onboardingPracticeButton": "View Onboarding Exam",
"learning.proctoringPanel.onboardingButtonNotOpen": "Onboarding Opens: {releaseDate}",
"learning.proctoringPanel.reviewRequirementsButton": "Review instructions and system requirements",
"learning.proctoringPanel.onboardingButtonPastDue": "Onboarding Past Due",
"learning.outline.sequence-due": "{description} due {assignmentDue}",
"progress.certificateStatus.unverifiedBody": "In order to generate a certificate, you must complete ID verification. {idVerificationSupportLink}.",
"progress.certificateStatus.downloadableBody": "Showcase your accomplishment on LinkedIn or your resumé today. You can download your certificate now and access it any time from your Dashboard and Profile.",
"courseCelebration.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.notPassingHeader": "Certificate status",
"progress.certificateStatus.notPassingBody": "In order to qualify for a certificate, you must have a passing grade.",
"progress.certificateStatus.inProgressHeader": "More content is coming soon!",
"progress.certificateStatus.inProgressBody": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"progress.certificateStatus.requestableHeader": "Certificate status",
"progress.certificateStatus.requestableBody": "Congratulations, you qualified for a certificate! In order to access your certificate, request it below.",
"progress.certificateStatus.requestableButton": "Request certificate",
"progress.certificateStatus.unverifiedHeader": "Certificate status",
"progress.certificateStatus.unverifiedButton": "Verify ID",
"progress.certificateStatus.courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"progress.certificateStatus.downloadableHeader": "Your certificate is available!",
"progress.certificateStatus.viewableButton": "View my certificate",
"progress.certificateStatus.notAvailableHeader": "Certificate status",
"progress.certificateBody.notAvailable.endDate": "Final grades and any earned certificates are scheduled to be available after {endDate}.",
"progress.certificateStatus.upgradeHeader": "Earn a certificate",
"progress.certificateStatus.upgradeBody": "You are in an audit track and do not qualify for a certificate. In order to work towards a certificate, upgrade your course today.",
"progress.certificateStatus.upgradeButton": "Upgrade now",
"progress.certificateStatus.unverifiedHomeHeader.v2": "Verify your identity to qualify for a certificate.",
"progress.certificateStatus.unverifiedHomeButton": "Verify my ID",
"progress.certificateStatus.unverifiedHomeBody": "In order to generate a certificate for this course, you must complete the ID verification process.",
"progress.completion.donut.label": "completed",
"progress.completion.body": "This represents how much of the course content you have completed. Note that some content may not yet be released.",
"progress.completion.tooltip.locked": "Content that you have completed.",
"progress.completion.header": "Course completion",
"progress.completion.tooltip": "Content that you have access to and have not completed.",
"progress.completion.tooltip.complete": "Content that is locked and available only to those who upgrade.",
"progress.completion.donut.percentComplete": "You have completed {percent}% of content in this course.",
"progress.completion.donut.percentIncomplete": "You have not completed {percent}% of content in this course that you have access to.",
"progress.completion.donut.percentLocked": "{percent}% of content in this course is locked and available only for those who upgrade.",
"progress.creditInformation.creditNotEligible": "You are no longer eligible for credit in this course. Learn more about {creditLink}.",
"progress.creditInformation.creditEligible": "\n You have met the requirements for credit in this course. Go to your\n {dashboardLink} to purchase course credit. Or learn more about {creditLink}.",
"progress.creditInformation.creditPartialEligible": "You have not yet met the requirements for credit. Learn more about {creditLink}.",
"progress.creditInformation.completed": "Completed",
"progress.creditInformation.courseCredit": "course credit",
"progress.creditInformation.minimumGrade": "Minimum grade for credit ({minGrade}%)",
"progress.creditInformation.requirementsHeader": "Requirements for course credit",
"progress.creditInformation.upcoming": "Upcoming",
"progress.creditInformation.verificationFailed": "Verification failed",
"progress.creditInformation.verificationSubmitted": "Verification submitted",
"progress.ungradedAlert": "For progress on ungraded aspects of the course, view your {outlineLink}.",
"progress.footnotes.droppableAssignments": "The lowest {numDroppable, plural, one{# {assignmentType} score is} other{# {assignmentType} scores are}} dropped.",
"progress.assignmentType": "Assignment type",
"progress.footnotes.backToContent": "Back to content",
"progress.courseGrade.body": "This represents your weighted grade against the grade needed to pass this course.",
"progress.courseGrade.gradeBar.altText": "Your current grade is {currentGrade}%. A weighted grade of {passingGrade}% is required to pass in this course.",
"progress.courseGrade.footer.generic.passing": "Youre currently passing this course",
"progress.courseGrade.footer.nonPassing": "A weighted grade of {passingGrade}% is required to pass in this course",
"progress.courseGrade.footer.passing": "Youre currently passing this course with a grade of {letterGrade} ({minGrade}-{maxGrade}%)",
"progress.courseGrade.preview.headerLocked": "locked feature",
"progress.courseGrade.preview.headerLimited": "limited feature",
"progress.courseGrade.preview.header.ariaHidden": "Preview of a ",
"progress.courseGrade.preview.body.unlockCertificate": "Unlock to view grades and work towards a certificate.",
"progress.courseGrade.partialpreview.body.unlockCertificate": "Unlock to work towards a certificate.",
"progress.courseGrade.preview.body.upgradeDeadlinePassed": "The deadline to upgrade in this course has passed.",
"progress.courseGrade.preview.button.upgrade": "Upgrade now",
"progress.courseGrade.gradeRange.tooltip": "Grade ranges for this course:",
"progress.courseOutline": "Course Outline",
"progress.courseGrade.label.currentGrade": "Your current grade",
"progress.detailedGrades": "Detailed grades",
"progress.detailedGrades.emptyTable": "You currently have no graded problem scores.",
"progress.footnotes.title": "Grade summary footnotes",
"progress.gradeSummary.grade": "Grade",
"progress.courseGrade.grades": "Grades",
"progress.courseGrade.gradesAndCredit": "Grades & Credit",
"progress.courseGrade.gradeRange.Tooltip": "Grade range tooltip",
"progress.gradeSummary": "Grade summary",
"progress.gradeSummary.limitedAccessExplanation": "You have limited access to graded assignments as part of the audit track in this course.",
"progress.gradeSummary.tooltip.alt": "Grade summary tooltip",
"progress.gradeSummary.tooltip.body": "Your course assignment's weight is determined by your instructor. By multiplying your grade by the weight for that assignment type, your weighted grade is calculated. Your weighted grade is what's used to determine if you pass the course.",
"progress.noAcessToAssignmentType": "You do not have access to assignments of type {assignmentType}",
"progress.noAcessToSubsection": "You do not have access to subsection {displayName}",
"progress.courseGrade.label.passingGrade": "Passing grade",
"progress.detailedGrades.problemScore.label": "Problem Scores:",
"progress.detailedGrades.problemScore.toggleButton": "Toggle individual problem scores for {subsectionTitle}",
"progress.detailedGrades.overridden": "Section grade has been overridden.",
"progress.score": "Score",
"progress.weight": "Weight",
"progress.weightedGrade": "Weighted grade",
"progress.weightedGradeSummary": "Your current weighted grade summary",
"progress.header": "Your progress",
"progress.header.targetUser": "Course progress for {username}",
"progress.link.studio": "View grading in Studio",
"progress.relatedLinks.datesCard.description": "A schedule view of your course due dates and upcoming assignments.",
"progress.relatedLinks.datesCard.link": "Dates",
"progress.relatedLinks.outlineCard.description": "A birds-eye view of your course content.",
"progress.relatedLinks.outlineCard.link": "Course Outline",
"progress.relatedLinks": "Related links",
"datesBanner.suggestedSchedule": "Weve built a suggested schedule to help you stay on track. But dont worry—its flexible so you can learn at your own pace.",
"datesBanner.upgradeToCompleteGradedBanner.header": "Upgrade to unlock",
"datesBanner.upgradeToCompleteGradedBanner.body": "You are auditing this course, which means that you are unable to participate in graded assignments. To complete graded assignments as part of this course, you can upgrade today.",
"datesBanner.upgradeToCompleteGradedBanner.button": "Upgrade now",
"datesBanner.upgradeToResetBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.upgradeToResetBanner.button": "Upgrade to shift due dates",
"datesBanner.resetDatesBanner.header": "It looks like you missed some important deadlines based on our suggested schedule.",
"datesBanner.resetDatesBanner.body": "To keep yourself on track, you can update this schedule and shift the past due assignments into the future. Dont worry—you wont lose any of the progress youve made when you shift your due dates.",
"datesBanner.resetDatesBanner.button": "Shift due dates",
"learn.navigation.course.tabs.label": "Course Material",
"unit.bookmark.button.add.bookmark": "Bookmark this page",
"unit.bookmark.button.remove.bookmark": "Bookmarked",
"learning.celebration.completed": "You just completed the first section of your course.",
"learning.celebration.congrats": "Congratulations!",
"learning.celebration.earned": "You earned it!",
"learning.celebration.emailSubject": "I'm on my way to completing {title} online with {platform}!",
"learning.celebration.forward": "Keep going",
"learning.celebration.goalMet": "You met your goal!",
"learning.celebration.keepItUp": "Keep it up",
"learning.celebration.share": "Take a moment to celebrate and share your progress.",
"learning.celebration.social": "Im on my way to completing {title} online with {platform}. What are you spending your time learning?",
"learning.celebration.goalCongrats": "Congratulations, you met your learning goal of {nTimes} a week.",
"learning.celebration.setGoal": "Setting a goal can help you {strongText} in your course.",
"calculator.instructions.button.label": "Calculator Instructions",
"calculator.instructions": "For detailed information, see the {expressions_link}.",
"calculator.instructions.support.title": "Help Center",
"calculator.instructions.useful.tips": "Useful tips:",
"calculator.hint1": "Use parentheses () to make expressions clear. You can use parentheses inside other parentheses.",
"calculator.hint2": "Do not use spaces in expressions.",
"calculator.hint3": "For constants, indicate multiplication explicitly (example: 5*c).",
"calculator.hint4": "For affixes, type the number and affix without a space (example: 5c).",
"calculator.hint5": "For functions, type the name of the function, then the expression in parentheses.",
"calculator.instruction.table.to.use.heading": "To Use",
"calculator.instruction.table.type.heading": "Type",
"calculator.instruction.table.examples.heading": "Examples",
"calculator.instruction.table.to.use.numbers": "Numbers",
"calculator.instruction.table.to.use.numbers.type1": "Integers",
"calculator.instruction.table.to.use.numbers.type2": "Fractions",
"calculator.instruction.table.to.use.numbers.type3": "Decimals",
"calculator.instruction.table.to.use.operators": "Operators",
"calculator.instruction.table.to.use.operators.type1": "(add, subtract, multiply, divide)",
"calculator.instruction.table.to.use.operators.type2": "(raise to a power)",
"calculator.instruction.table.to.use.operators.type3": "(parallel resistors)",
"calculator.instruction.table.to.use.constants": "Constants",
"calculator.instruction.table.to.use.affixes": "Affixes",
"calculator.instruction.table.to.use.affixes.type": "Percent sign (%)",
"calculator.instruction.table.to.use.basic.functions": "Basic functions",
"calculator.instruction.table.to.use.trig.functions": "Trigonometric functions",
"calculator.instruction.table.to.use.scientific.notation": "Scientific notation",
"calculator.instruction.table.to.use.scientific.notation.type1": "{exponentSyntax} and the exponent",
"calculator.instruction.table.to.use.scientific.notation.type2": "{notationSyntax} notation",
"calculator.instruction.table.to.use.scientific.notation.type3": "{notationSyntax} and the exponent",
"calculator.button.label": "Calculator",
"calculator.input.field.label": "Calculator Input",
"calculator.submit.button.label": "Calculate",
"calculator.result.field.label": "Calculator Result",
"calculator.result.field.placeholder": "Result",
"notes.button.show": "Show Notes",
"notes.button.hide": "Hide Notes",
"courseExit.catalogSearchSuggestion": "Looking to learn more? {searchOurCatalogLink} to find more courses and programs to explore.",
"courseCelebration.certificateBody.available": "\n Showcase your accomplishment on LinkedIn or your resumé today.\n You can download your certificate now and access it any time from your\n {dashboardLink} and {profileLink}.",
"courseCelebration.certificateBody.notAvailable.endDate.v2": "This course ends on {endDate}. Final grades and any earned certificates are\n scheduled to be available after {certAvailableDate}.",
"courseCelebration.certificateBody.unverified": "In order to generate a certificate, you must complete ID verification.\n {idVerificationSupportLink} now.",
"courseCelebration.certificateBody.upgradable": "Its not too late to upgrade. For {price} you will unlock access to all graded\n assignments in this course. Upon completion, you will receive a verified certificate which is a\n valuable credential to improve your job prospects and advance your career, or highlight your\n certificate in school applications.",
"courseCelebration.upgradeDiscountCodePrompt": "Use code {code} at checkout for {percent}% off!",
"courseCelebration.recommendations.heading": "Keep building your skills with these courses!",
"courseCelebration.recommendations.label": "Course",
"courseCelebration.recommendations.formatting.list_join": "{style, select, punctuation {, } conjunction { {sp}and } other { }}",
"courseCelebration.recommendations.browse_catalog": "Explore more courses",
"courseCelebration.recommendations.loading_recommendations": "Loading recommendations",
"courseCelebration.recommendations.card.schools.label": "Schools and Partners",
"courseCelebration.dashboardInfo": "You can access this course and its materials on your {dashboardLink}.",
"courseExit.programs.applyForCredit": "Apply for credit",
"courseCelebration.certificateHeader.downloadable": "Your certificate is available!",
"courseCelebration.certificateHeader.notAvailable": "Your grade and certificate status will be available soon.",
"courseCelebration.certificateBody.notAvailable.accessCertificate": "If you have earned a passing grade, your certificate will be automatically issued.",
"courseCelebration.certificateHeader.unverified": "You must complete verification to receive your certificate.",
"courseCelebration.certificateHeader.requestable": "Congratulations, you qualified for a certificate!",
"courseCelebration.certificateHeader.upgradable": "Upgrade to pursue a verified certificate",
"courseCelebration.certificateImage": "Sample certificate",
"courseCelebration.completedCourseHeader": "You have completed your course.",
"courseCelebration.congratulationsHeader": "Congratulations!",
"courseCelebration.congratulationsImage": "Four people raising their hands in celebration",
"courseExit.courseInProgressDescription": "It looks like there is more content in this course that will be released in the future. Look out for email updates or check back on your course for when this content will be available.",
"courseExit.courseInProgressHeader": "More content is coming soon!",
"courseExit.dashboardLink": "Dashboard",
"courseExit.endOfCourseDescription": "Unfortunately, you are not currently eligible for a certificate. You need to receive a passing grade to be eligible for a certificate.",
"courseExit.endOfCourseHeader": "Youve reached the end of the course!",
"courseExit.endOfCourseTitle": "End of Course",
"courseExit.idVerificationSupportLink": "Learn more about ID verification",
"courseCelebration.linkedinAddToProfileButton": "Add to LinkedIn profile",
"courseExit.programs.microBachelors.learnMore": "Learn more about how your MicroBachelors credential can be applied for credit.",
"courseExit.programs.microMasters.learnMore": "Learn more about the process of applying MicroMasters certificates to Masters degrees.",
"courseExit.programs.microMasters.mastersMessage": "If youre interested in using your MicroMasters certificate towards a Masters program, you can get started today!",
"learn.sequence.navigation.complete.button": "Complete the course",
"courseExit.nextButton.endOfCourse": "Next (end of course)",
"courseExit.profileLink": "Profile",
"courseExit.programs.lastCourse": "You have completed the last course in {title}!",
"courseCelebration.requestCertificateBodyText": "In order to access your certificate, request it below.",
"courseCelebration.requestCertificateButton": "Request certificate",
"courseExit.searchOurCatalogLink": "Search our catalog",
"courseCelebration.shareMessage": "Share your success on social media or email.",
"courseExit.social.shareCompletionMessage": "I just completed {title} with {platform}!",
"courseExit.upgradeButton": "Upgrade now",
"courseExit.upgradeLink": "upgrade now",
"courseCelebration.verificationPending": "Your ID verification is pending and your certificate will be available once approved.",
"courseExit.verifiedCertificateSupportLink": "Learn more about verified certificates",
"courseCelebration.verifyIdentityButton": "Verify ID now",
"courseCelebration.viewCertificateButton": "View my certificate",
"courseExit.viewCourseScheduleButton": "View course schedule",
"courseExit.viewCoursesButton": "View my courses",
"courseExit.viewGradesButton": "View grades",
"courseExit.programCompletion.dashboardMessage": "To view your certificate status, check the Programs section of your {programLink}.",
"courseExit.upgradeFootnote": "Access to this course and its materials are available on your dashboard until {expirationDate}. To extend access, {upgradeLink}.",
"learn.course.license.allRightsReserved.text": "All Rights Reserved",
"learn.course.license.creativeCommons.terms.preamble": "Creative Commons licensed content, with terms as follows:",
"learn.course.license.creativeCommons.terms.by": "Attribution",
"learn.course.license.creativeCommons.terms.nc": "Noncommercial",
"learn.course.license.creativeCommons.terms.nd": "No Derivatives",
"learn.course.license.creativeCommons.terms.sa": "Share Alike",
"learn.course.license.creativeCommons.terms.zero": "No terms",
"learn.course.license.creativeCommons.text": "Some Rights Reserved",
"learn.breadcrumb.navigation.course.home": "Course",
"notification.tray.container": "Notification tray",
"notification.open.button": "Show notification tray",
"notification.close.button": "Close notification tray",
"responsive.close.notification": "Back to course",
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",
"learn.hiddenAfterDue.description": "Because the due date has passed, this assignment is no longer available.",
"learn.hiddenAfterDue.progressPage": "progress page",
"learn.honorCode.content": "Honesty and academic integrity are important to {siteName} and the institutions providing courses and programs on the {siteName} site. By clicking “I agree” below, I confirm that I have read, understand, and will abide by the {link} for the {siteName} Site.",
"learn.honorCode.name": "Honor Code",
"learn.honorCode.cancel": "Cancel",
"learn.honorCode.agree": "I agree",
"learn.lockPaywall.title": "Graded assignments are locked",
"learn.lockPaywall.content": "Upgrade to gain access to locked features like this one and get the most out of your course.",
"learn.lockPaywall.content.pastExpiration": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session. ",
"learn.lockPaywall.courseDetails": "View Course Details",
"learn.lockPaywall.example.alt": "Example Certificate",
"learn.lockPaywall.list.intro": "When you upgrade, you:",
"learn.header.h2.placeholder": "Level 2 headings may be created by course providers in the future.",
"learn.course.load.failure": "There was an error loading this course.",
"learn.loading.honor.codk": "Loading honor code messaging...",
"learn.loading.content.lock": "Loading locked content messaging...",
"learn.loading.learning.sequence": "Loading learning sequence...",
"learn.sequence.no.content": "There is no content here.",
"learn.sequence.navigation.next.button": "Next",
"learn.sequence.navigation.next.up.button": "Next Up: {title}",
"learn.sequence.navigation.previous.button": "Previous",
"learn.course.sequence.navigation.mobile.menu": "{current} of {total}",
"discussions.sidebar.title": "Discussions",
"discussions.sidebar.open.button": "Show discussions tray",
"learn.redirect.interstitial.message": "Redirecting...",
"learn.loading.error": "Error: {error}",
"learning.celebration.emailBody": "What are you spending your time learning?",
"learning.social.shareEmail": "Share your progress via email.",
"learning.social.shareService": "Share your progress on {service}.",
"general.altText.close": "Close",
"learning.logistration.register": "register",
"learning.logistration.login": "sign in",
"general.signIn.sentenceCase": "Sign in",
"learn.course.tabs.navigation.overflow.menu": "More...",
"learning.offer.screenReaderPrices": "Original price: {originalPrice}, discount price: {discountedPrice}",
"learning.upgradeButton.screenReaderInlinePrices": "Original price: {originalPrice}",
"learning.upgradeButton.buttonText": "Upgrade for {pricing}",
"learning.upgradeNowButton.buttonText": "Upgrade now for {pricing}",
"learning.generic.upgradeNotification.expirationAccessLoss.progress": "including any progress",
"learning.generic.upgradeNotification.expirationVerifiedCert.benefits": "benefits of upgrading",
"learning.generic.upgradeNotification.expirationAccessLoss": "You will lose all access to this course, {includingAnyProgress}, on {date}.",
"learning.generic.upgradeNotification.expirationVerifiedCert": "Upgrading your course enables you to pursue a verified certificate and unlocks numerous features. Learn more about the {benefitsOfUpgrading}.",
"learning.generic.upgradeNotification.pastExpiration.content": "The upgrade deadline for this course passed. To upgrade, enroll in the next available session.",
"learning.generic.upgradeNotification.expirationDays": "{dayCount, number} {dayCount, plural, \n one {day}\n other {days}} left",
"learning.generic.upgradeNotification.expirationHours": "{hourCount, number} {hourCount, plural,\n one {hour}\n other {hours}} left",
"learning.generic.upgradeNotification.expirationMinutes": "Less than 1 hour left",
"learning.generic.upgradeNotification.expiration": "Course access will expire {date}",
"learning.generic.upgradeNotification.pastExpiration.banner": "Upgrade deadline passed on {date}",
"learning.generic.upgradeNotification.firstTimeLearnerDiscount": "{percentage}% First-Time Learner Discount",
"learning.generic.upgradeNotification.accessExpiration": "Upgrade your course today",
"learning.generic.upgradeNotification.accessExpirationUrgent": "Course Access Expiration",
"learning.generic.upgradeNotification.accessExpirationPast": "Course Access Expiration",
"learning.generic.upgradeNotification.pursueAverifiedCertificate": "Pursue a verified certificate",
"learning.generic.upgradeNotification.code": "Use code {code} at checkout",
"learning.generic.upsell.verifiedCertBullet.verifiedCert": "verified certificate",
"learning.generic.upsell.verifiedCertBullet": "Earn a {verifiedCertLink} of completion to showcase on your resumé",
"learning.generic.upsell.unlockGradedBullet.gradedAssignments": "graded assignments",
"learning.generic.upsell.unlockGradedBullet": "Unlock your access to all course activities, including {gradedAssignmentsInBoldText}",
"learning.generic.upsell.fullAccessBullet.fullAccess": "Full access",
"learning.generic.upsell.fullAccessBullet": "{fullAccessInBoldText} to course content and materials, even after the course ends",
"learning.generic.upsell.supportMissionBullet.mission": "mission",
"learning.generic.upsell.supportMissionBullet": "Support our {missionInBoldText} at {siteName}",
"masquerade-widget.userName.error.generic": "An error has occurred; please try again.",
"masquerade-widget.userName.input.placeholder": "Username or email",
"masquerade-widget.userName.input.label": "Masquerade as this user",
"tours.abandonTour.launchTourCheckpoint.body": "Feeling lost? Launch the tour any time for some quick tips to get the most out of the experience.",
"tours.sequenceNavigationCheckpoint.body": "The top bar within your course allows you to easily jump to different sections and shows you whats coming up.",
"tours.existingUserTour.launchTourCheckpoint.body": "Weve recently added a few new features to the course experience. Want some help looking around? Take a tour to learn more.",
"tours.button.dismiss": "Dismiss",
"tours.button.next": "Next",
"tours.button.okay": "Okay",
"tours.button.beginTour": "Begin tour",
"tours.button.launchTour": "Launch tour",
"tours.newUserModal.body": "Lets take a quick tour of {siteName} so you can get the most out of your course.",
"tours.newUserModal.title.welcome": "Welcome to your",
"tours.button.skipForNow": "Skip for now",
"tours.datesCheckpoint.body": "Important dates can help you stay on track.",
"tours.datesCheckpoint.title": "Keep on top of key dates",
"tours.outlineCheckpoint.body": "You can explore sections of the course using the outline below.",
"tours.outlineCheckpoint.title": "Take the course!",
"tours.tabNavigationCheckpoint.body": "These tabs can be used to access other course materials, such as your progress, syllabus, etc.",
"tours.tabNavigationCheckpoint.title": "Additional course resources",
"tours.upgradeCheckpoint.body": "Work towards a certificate and gain full access to course materials. Upgrade now!",
"tours.upgradeCheckpoint.title": "Unlock your course",
"tours.weeklyGoalsCheckpoint.body": "Setting a goal makes you more likely to complete your course.",
"tours.weeklyGoalsCheckpoint.title": "Set a course goal",
"tours.newUserModal.title": "{welcome} {siteName} course!",
"learning.effortEstimation.combinedEstimate": "{minutes} + {activities}",
"learning.effortEstimation.activities": "{activityCount, plural, one {# activity} other {# activities}}",
"learning.effortEstimation.minutesAbbreviated": "{minuteCount, plural, one {# min} other {# min}}",
"learning.effortEstimation.minutesFull": "{minuteCount, plural, one {# minute} other {# minutes}}",
"learning.streakCelebration.congratulations": "Congratulations!",
"learning.streakCelebration.body": "Keep it up, youre on a roll!",
"learning.streakCelebration.button": "Keep it up",
"learning.streakCelebration.buttonSrOnly": "Close modal and continue",
"learning.streakCelebration.buttonAA759": "Continue with course",
"learning.streakCelebration.header": "day streak",
"learning.streakCelebration.factoidABoldedSection": "are 20x more likely to pass their course",
"learning.streakCelebration.factoidBBoldedSection": "complete 5x as much course content on average",
"learning.streakCelebration.streakDiscountMessage": "Youve unlocked a {percent}% off discount when you upgrade this course for a limited time only.",
"learning.streakcelebration.factoida": "Users who learn {streak_length} days in a row {bolded_section} than those who dont.",
"learning.streakcelebration.factoidb": "Users who learn {streak_length} days in a row {bolded_section} vs. those who dont.",
"learning.streakCelebration.streakCelebrationCouponEndDateMessage": "Ends {date}.",
"learning.loading.failure": "There was an error loading this course.",
"learning.loading": "Loading course page…"
}

View File

@@ -94,6 +94,7 @@
"learning.proctoringPanel.status.error": "Error",
"learning.proctoringPanel.status.otherCourseApproved": "Approved in Another Course",
"learning.proctoringPanel.status.expiringSoon": "Expiring Soon",
"learning.proctoringPanel.status.expired": "Expired",
"learning.proctoringPanel.status": "Current Onboarding Status:",
"learning.proctoringPanel.message.notStarted": "You have not started your onboarding exam.",
"learning.proctoringPanel.message.started": "You have started your onboarding exam.",
@@ -103,7 +104,8 @@
"learning.proctoringPanel.message.error": "An error has occurred during your onboarding exam. Please retry onboarding.",
"learning.proctoringPanel.message.otherCourseApproved": "Your onboarding exam has been approved in another course.",
"learning.proctoringPanel.detail.otherCourseApproved": "If your device has changed, we recommend that you complete this course's onboarding exam in order to ensure that your setup still meets the requirements for proctoring.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved in another course. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expiringSoon": "Your onboarding profile has been approved. However, your onboarding status is expiring soon. Please complete onboarding again to ensure that you will be able to continue taking proctored exams.",
"learning.proctoringPanel.message.expired": "Your onboarding status has expired. Please complete onboarding again to continue taking proctored exams.",
"learning.proctoringPanel.generalInfo": "You must complete the onboarding process prior to taking any proctored exam. ",
"learning.proctoringPanel.generalInfoSubmitted": "Your submitted profile is in review.",
"learning.proctoringPanel.generalTime": "Onboarding profile review can take 2+ business days.",
@@ -333,7 +335,7 @@
"notification.tray.title": "Notifications",
"notification.tray.no.message": "You have no new notifications at this time.",
"learn.contentLock.content.locked": "Content Locked",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: '{prereqSectionName}' to access this content.",
"learn.contentLock.complete.prerequisite": "You must complete the prerequisite: ''{prereqSectionName}'' to access this content.",
"learn.contentLock.goToSection": "Go To Prerequisite Section",
"learn.hiddenAfterDue.gradeAvailable": "If you have completed this assignment, your grade is available on the {progressPage}.",
"learn.hiddenAfterDue.header": "The due date for this assignment has passed.",

View File

@@ -4,6 +4,7 @@ import 'regenerator-runtime/runtime';
import {
APP_INIT_ERROR, APP_READY, subscribe, initialize,
mergeConfig,
getConfig,
} from '@edx/frontend-platform';
import { AppProvider, ErrorPage, PageRoute } from '@edx/frontend-platform/react';
import React from 'react';
@@ -12,6 +13,7 @@ import { Switch } from 'react-router-dom';
import { messages as footerMessages } from '@edx/frontend-component-footer';
import { messages as headerMessages } from '@edx/frontend-component-header';
import { Helmet } from 'react-helmet';
import { fetchDiscussionTab, fetchLiveTab } from './course-home/data/thunks';
import DiscussionTab from './course-home/discussion-tab/DiscussionTab';
@@ -39,6 +41,9 @@ import CourseAccessErrorPage from './generic/CourseAccessErrorPage';
subscribe(APP_READY, () => {
ReactDOM.render(
<AppProvider store={initializeStore()}>
<Helmet>
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
</Helmet>
<PathFixesProvider>
<NoticesProvider>
<UserMessagesProvider>

View File

@@ -376,6 +376,7 @@
@import "course-home/progress-tab/course-completion/CompletionDonutChart.scss";
@import "course-home/progress-tab/grades/course-grade/GradeBar.scss";
@import "courseware/course/course-exit/CourseRecommendations";
@import "product-tours/newUserCourseHomeTour/NewUserCourseHomeTourModal.scss";
/** [MM-P2P] Experiment */
@import "experiments/mm-p2p/index.scss";

View File

@@ -19,6 +19,7 @@ function NewUserCourseHomeTourModal({
<MarketingModal
isOpen={isOpen}
title="New user course home prompt"
className="new-user-tour-dialog"
heroIsDark
hasCloseButton={false}
heroNode={(

View File

@@ -0,0 +1,3 @@
[dir="rtl"] .new-user-tour-dialog .pgn__modal-hero .pgn__modal-hero-bg {
transform: scaleX(-1);
}

View File

@@ -96,8 +96,8 @@ describe('Loaded Tab Page', () => {
await renderModal();
const endDateText = `Ends ${new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toLocaleDateString({ timeZone: 'UTC' })}.`;
expect(screen.getByText('Youve unlocked a 14% off discount when you upgrade this course for a limited time only.')).toBeInTheDocument();
expect(screen.getByText(endDateText)).toBeInTheDocument();
expect(screen.getByText('Youve unlocked a 14% off discount when you upgrade this course for a limited time only.', { exact: false })).toBeInTheDocument();
expect(screen.getByText(endDateText, { exact: false })).toBeInTheDocument();
expect(screen.getByText('Continue with course')).toBeInTheDocument();
expect(screen.queryByText('Keep it up')).not.toBeInTheDocument();
expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.course.streak_discount_enabled', {