Compare commits
261 Commits
astankiewi
...
Ali-Abbas/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1398e486fe | ||
|
|
f098fe1a3a | ||
|
|
a989fabb92 | ||
|
|
1257e81781 | ||
|
|
b08890b794 | ||
|
|
7f1c7b86ef | ||
|
|
a5fd3a7f7e | ||
|
|
4513cc8834 | ||
|
|
40103a2386 | ||
|
|
b6c18bb439 | ||
|
|
ee51939f2d | ||
|
|
fc127ccd98 | ||
|
|
22faebac50 | ||
|
|
5ce3995f5b | ||
|
|
e181269703 | ||
|
|
5d212ec6b5 | ||
|
|
363096c4f0 | ||
|
|
85c5902559 | ||
|
|
fca6da2df7 | ||
|
|
7a74e5d29b | ||
|
|
4b94344dd9 | ||
|
|
5245254de5 | ||
|
|
afda76ff11 | ||
|
|
da52ddd35a | ||
|
|
bb2aef3878 | ||
|
|
4d6f76d9b3 | ||
|
|
869e083a2a | ||
|
|
ee876b5c84 | ||
|
|
a2b25449de | ||
|
|
16218252f1 | ||
|
|
757e446be7 | ||
|
|
db0f8f80bc | ||
|
|
49bc817f2d | ||
|
|
c31beeef96 | ||
|
|
09970d7935 | ||
|
|
d15b0baf74 | ||
|
|
b9802a130e | ||
|
|
7c0ea75e21 | ||
|
|
e1b02de7de | ||
|
|
6c4dbc5db0 | ||
|
|
d180626122 | ||
|
|
a9518b7388 | ||
|
|
51b18e9c52 | ||
|
|
3d98558bf6 | ||
|
|
e7e7f518bf | ||
|
|
cb06c8778a | ||
|
|
ab5c205a7f | ||
|
|
2f85902d2c | ||
|
|
b75e78bdda | ||
|
|
182a0251a4 | ||
|
|
89881c64a6 | ||
|
|
7321e2a159 | ||
|
|
9b45aa3bc9 | ||
|
|
dfadac08d3 | ||
|
|
2e87f0bd9f | ||
|
|
7f8086545c | ||
|
|
de6e3c2010 | ||
|
|
eb6d0125c6 | ||
|
|
e8f754c10b | ||
|
|
a72bbf2f58 | ||
|
|
c465f51e66 | ||
|
|
599e658742 | ||
|
|
929a669cad | ||
|
|
503b8b5176 | ||
|
|
d2aa727c12 | ||
|
|
d66dcecd2f | ||
|
|
80d0c44b40 | ||
|
|
0e5cd30d01 | ||
|
|
56b9fe3998 | ||
|
|
a22f1298eb | ||
|
|
b7bd6a2846 | ||
|
|
a52ab171de | ||
|
|
13a7508f26 | ||
|
|
a499aa4cc5 | ||
|
|
e7207878d4 | ||
|
|
47d64c1cf5 | ||
|
|
c75dc86263 | ||
|
|
105a8d1a3c | ||
|
|
c74cf52e38 | ||
|
|
5c9b448b14 | ||
|
|
4e95495dcc | ||
|
|
82f86f5fbe | ||
|
|
f737d6e158 | ||
|
|
f9feb94668 | ||
|
|
112afa7e51 | ||
|
|
1694ea38ab | ||
|
|
0f3b7caa0f | ||
|
|
a85e1e1e15 | ||
|
|
55d00027a9 | ||
|
|
bf012619a6 | ||
|
|
f47795bf40 | ||
|
|
848e7a2f85 | ||
|
|
ecc6138833 | ||
|
|
d6600eb876 | ||
|
|
bc237de755 | ||
|
|
89abb51734 | ||
|
|
be8570edac | ||
|
|
09cce6802d | ||
|
|
c164dd7dcf | ||
|
|
00435fb27d | ||
|
|
0ebaa0b991 | ||
|
|
0d7b529233 | ||
|
|
2c2f7e8e98 | ||
|
|
768b8a2417 | ||
|
|
192714629c | ||
|
|
f2f761e8db | ||
|
|
410aa14b28 | ||
|
|
e857293414 | ||
|
|
492f911930 | ||
|
|
0002d84a6c | ||
|
|
9b49b38496 | ||
|
|
7cf9294e09 | ||
|
|
129f73aa4f | ||
|
|
7bdb93784b | ||
|
|
b32c001fec | ||
|
|
5f134d7b99 | ||
|
|
81b0823632 | ||
|
|
95e3af7487 | ||
|
|
77047bab2a | ||
|
|
c1cf6d65de | ||
|
|
f626fc2f89 | ||
|
|
f56b1b4530 | ||
|
|
1c423c4b6c | ||
|
|
7715b143d2 | ||
|
|
b200417903 | ||
|
|
138d80d57d | ||
|
|
07a33447ad | ||
|
|
4d11d28f96 | ||
|
|
e61dc12eab | ||
|
|
2c268d906c | ||
|
|
0acaebe067 | ||
|
|
9ea109f705 | ||
|
|
be2964562f | ||
|
|
6d7bf1b878 | ||
|
|
3a7c963f3c | ||
|
|
3728928a6d | ||
|
|
596eeee59d | ||
|
|
ae2f8a384f | ||
|
|
ffe0989969 | ||
|
|
53eeb26e28 | ||
|
|
0325d2a7f6 | ||
|
|
b83d568dfb | ||
|
|
2f839b3362 | ||
|
|
bfc655d6ab | ||
|
|
bd63ea9484 | ||
|
|
6c825625fb | ||
|
|
be59c2da90 | ||
|
|
8a4e6730a8 | ||
|
|
6053475c6f | ||
|
|
ed1cfc28aa | ||
|
|
1637aea0fa | ||
|
|
3c5aa05b48 | ||
|
|
5a1dc5a992 | ||
|
|
ccbf8201a0 | ||
|
|
34be9f681a | ||
|
|
cfca229500 | ||
|
|
d2396a8162 | ||
|
|
b630514906 | ||
|
|
f8dbbf7757 | ||
|
|
8eb26db72d | ||
|
|
499cbeaa62 | ||
|
|
4b103161b9 | ||
|
|
fb8e4829c3 | ||
|
|
4a81220aa3 | ||
|
|
85a0d751c0 | ||
|
|
859195be94 | ||
|
|
8499002072 | ||
|
|
6e85a2e1d9 | ||
|
|
e4b4197a9a | ||
|
|
60f34bf2ae | ||
|
|
63afc7d7be | ||
|
|
0aec952fd2 | ||
|
|
f8b8374058 | ||
|
|
d62bb11a9e | ||
|
|
af39ecbc5f | ||
|
|
6c2330fc6c | ||
|
|
109da5fa38 | ||
|
|
81ac063cf8 | ||
|
|
50f2442512 | ||
|
|
be28f398d6 | ||
|
|
cd47862c1d | ||
|
|
847e3e05b0 | ||
|
|
e347b3fb23 | ||
|
|
a6a1d94d92 | ||
|
|
e54de547f6 | ||
|
|
574cfb91c2 | ||
|
|
5bdf0a4978 | ||
|
|
cd8dee1731 | ||
|
|
0e7d2c048d | ||
|
|
79c4a14f6f | ||
|
|
de8977347a | ||
|
|
783f78a9ef | ||
|
|
c1fa6efb30 | ||
|
|
b3cd370d8e | ||
|
|
8cb416d142 | ||
|
|
dbd4faf558 | ||
|
|
92c8f17e2a | ||
|
|
c858966035 | ||
|
|
547d55a31f | ||
|
|
f78420511e | ||
|
|
e3ad6e6e54 | ||
|
|
c6ffc51a5d | ||
|
|
9b28469afd | ||
|
|
2bb1388a45 | ||
|
|
bf0d1379f6 | ||
|
|
0d9bc5988d | ||
|
|
3a2075de9c | ||
|
|
ef6239a807 | ||
|
|
8cb9df6d89 | ||
|
|
fa856b54bf | ||
|
|
e9f6acff27 | ||
|
|
dc26da9cc1 | ||
|
|
9dd05761fd | ||
|
|
0d5b86df57 | ||
|
|
d8eb6e9da5 | ||
|
|
d280062fe3 | ||
|
|
f0366a98f4 | ||
|
|
9d0577fd93 | ||
|
|
dba70b557c | ||
|
|
f6840bc202 | ||
|
|
1af5f0d179 | ||
|
|
b3a91470f8 | ||
|
|
9b18588e26 | ||
|
|
3d2e7dc8a4 | ||
|
|
41f1552f9b | ||
|
|
ffa8a36ce6 | ||
|
|
3505e645e3 | ||
|
|
88db6084df | ||
|
|
27c8ab28f3 | ||
|
|
e01b595a0c | ||
|
|
0d351f5173 | ||
|
|
03dbfb5670 | ||
|
|
1e17fc9e32 | ||
|
|
da912f1e35 | ||
|
|
fb0f832832 | ||
|
|
870dd631bb | ||
|
|
5b9f251e93 | ||
|
|
98c14bbd3b | ||
|
|
00ce8b927f | ||
|
|
ab215cd909 | ||
|
|
51e7773207 | ||
|
|
6f5a1a8aa9 | ||
|
|
deb48fb9d2 | ||
|
|
20b451afb6 | ||
|
|
ad6f812974 | ||
|
|
9573516b37 | ||
|
|
f0d6a92ab2 | ||
|
|
dc4d4031e9 | ||
|
|
84a5c7aaf1 | ||
|
|
6ad666342d | ||
|
|
1252498872 | ||
|
|
f9d04e4dd4 | ||
|
|
c96b9bb77d | ||
|
|
f3c672c5ae | ||
|
|
63c396c03a | ||
|
|
0981857062 | ||
|
|
0527c73529 | ||
|
|
5c5dbc369b | ||
|
|
196719963f | ||
|
|
92ee4dfbb9 | ||
|
|
9d0b3524cb |
8
.env
8
.env
@@ -1,6 +1,5 @@
|
||||
ACCESS_TOKEN_COOKIE_NAME=''
|
||||
BASE_URL=''
|
||||
COACHING_ENABLED=''
|
||||
CREDENTIALS_BASE_URL=''
|
||||
CSRF_TOKEN_API_PATH=''
|
||||
DEMOGRAPHICS_BASE_URL=''
|
||||
@@ -26,4 +25,11 @@ STUDIO_BASE_URL=''
|
||||
SUPPORT_URL=''
|
||||
USER_INFO_COOKIE_NAME=''
|
||||
ENABLE_COPPA_COMPLIANCE=''
|
||||
ENABLE_ACCOUNT_DELETION=''
|
||||
ENABLE_DOB_UPDATE=''
|
||||
MARKETING_EMAILS_OPT_IN=''
|
||||
APP_ID=
|
||||
MFE_CONFIG_API_URL=
|
||||
PASSWORD_RESET_SUPPORT_LINK=''
|
||||
LEARNER_FEEDBACK_URL=''
|
||||
SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT='https://support.edx.org/hc/en-us/articles/207206067'
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
ACCESS_TOKEN_COOKIE_NAME='edx-jwt-cookie-header-payload'
|
||||
BASE_URL='localhost:1997'
|
||||
COACHING_ENABLED=''
|
||||
CREDENTIALS_BASE_URL='http://localhost:18150'
|
||||
CSRF_TOKEN_API_PATH='/csrf/api/v1/token'
|
||||
DEMOGRAPHICS_BASE_URL='http://localhost:18360'
|
||||
@@ -27,4 +26,11 @@ STUDIO_BASE_URL=''
|
||||
SUPPORT_URL='http://localhost:18000/support'
|
||||
USER_INFO_COOKIE_NAME='edx-user-info'
|
||||
ENABLE_COPPA_COMPLIANCE=''
|
||||
ENABLE_ACCOUNT_DELETION=''
|
||||
ENABLE_DOB_UPDATE=''
|
||||
MARKETING_EMAILS_OPT_IN=''
|
||||
APP_ID=
|
||||
MFE_CONFIG_API_URL=
|
||||
PASSWORD_RESET_SUPPORT_LINK='mailto:support@example.com'
|
||||
LEARNER_FEEDBACK_URL=''
|
||||
SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT='https://support.edx.org/hc/en-us/articles/207206067'
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
ACCESS_TOKEN_COOKIE_NAME='edx-jwt-cookie-header-payload'
|
||||
BASE_URL='localhost:1997'
|
||||
COACHING_ENABLED=''
|
||||
CREDENTIALS_BASE_URL='http://localhost:18150'
|
||||
CSRF_TOKEN_API_PATH='/csrf/api/v1/token'
|
||||
DEMOGRAPHICS_BASE_URL='http://localhost:18360'
|
||||
@@ -26,4 +25,10 @@ STUDIO_BASE_URL=''
|
||||
SUPPORT_URL='http://localhost:18000/support'
|
||||
USER_INFO_COOKIE_NAME='edx-user-info'
|
||||
ENABLE_COPPA_COMPLIANCE=''
|
||||
ENABLE_ACCOUNT_DELETION=''
|
||||
ENABLE_DOB_UPDATE=''
|
||||
MARKETING_EMAILS_OPT_IN=''
|
||||
APP_ID=
|
||||
MFE_CONFIG_API_URL=
|
||||
LEARNER_FEEDBACK_URL=''
|
||||
SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT='https://support.edx.org/hc/en-us/articles/207206067'
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
const { createConfig } = require('@edx/frontend-build');
|
||||
|
||||
module.exports = createConfig('eslint');
|
||||
|
||||
@@ -16,4 +16,4 @@ jobs:
|
||||
secrets:
|
||||
GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }}
|
||||
GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }}
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }}
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }}
|
||||
|
||||
20
.github/workflows/add-remove-label-on-comment.yml
vendored
Normal file
20
.github/workflows/add-remove-label-on-comment.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# This workflow runs when a comment is made on the ticket
|
||||
# If the comment starts with "label: " it tries to apply
|
||||
# the label indicated in rest of comment.
|
||||
# If the comment starts with "remove label: ", it tries
|
||||
# to remove the indicated label.
|
||||
# Note: Labels are allowed to have spaces and this script does
|
||||
# not parse spaces (as often a space is legitimate), so the command
|
||||
# "label: really long lots of words label" will apply the
|
||||
# label "really long lots of words label"
|
||||
|
||||
name: Allows for the adding and removing of labels via comment
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
add_remove_labels:
|
||||
uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master
|
||||
|
||||
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
@@ -9,23 +9,21 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node: [16]
|
||||
npm: [8.5.0]
|
||||
npm-test:
|
||||
- i18n_extract
|
||||
- is-es5
|
||||
- lint
|
||||
- test
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Nodejs Env
|
||||
run: echo "NODE_VER=`cat .nvmrc`" >> $GITHUB_ENV
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- run: npm install -g npm@${{ matrix.npm }}
|
||||
node-version: ${{ env.NODE_VER }}
|
||||
- run: make requirements
|
||||
- run: make test NPM_TESTS=build
|
||||
- run: make test NPM_TESTS=${{ matrix.npm-test }}
|
||||
- name: upload coverage
|
||||
uses: codecov/codecov-action@v2
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
fail_ci_if_error: false
|
||||
|
||||
2
.github/workflows/commitlint.yml
vendored
2
.github/workflows/commitlint.yml
vendored
@@ -7,4 +7,4 @@ on:
|
||||
|
||||
jobs:
|
||||
commitlint:
|
||||
uses: edx/.github/.github/workflows/commitlint.yml@master
|
||||
uses: openedx/.github/.github/workflows/commitlint.yml@master
|
||||
|
||||
2
.github/workflows/lockfileversion-check.yml
vendored
2
.github/workflows/lockfileversion-check.yml
vendored
@@ -10,5 +10,5 @@ on:
|
||||
|
||||
jobs:
|
||||
version-check:
|
||||
uses: edx/.github/.github/workflows/lockfileversion-check.yml@master
|
||||
uses: openedx/.github/.github/workflows/lockfile-check.yml@master
|
||||
|
||||
|
||||
12
.github/workflows/self-assign-issue.yml
vendored
Normal file
12
.github/workflows/self-assign-issue.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# This workflow runs when a comment is made on the ticket
|
||||
# If the comment starts with "assign me" it assigns the author to the
|
||||
# ticket (case insensitive)
|
||||
|
||||
name: Assign comment author to ticket if they say "assign me"
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
self_assign_by_comment:
|
||||
uses: openedx/.github/.github/workflows/self-assign-issue.yml@master
|
||||
12
.github/workflows/update-browserslist-db.yml
vendored
Normal file
12
.github/workflows/update-browserslist-db.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
name: Update Browserslist DB
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-browserslist:
|
||||
uses: openedx/.github/.github/workflows/update-browserslist-db.yml@master
|
||||
|
||||
secrets:
|
||||
requirements_bot_github_token: ${{ secrets.requirements_bot_github_token }}
|
||||
26
Makefile
Executable file → Normal file
26
Makefile
Executable file → Normal file
@@ -1,17 +1,16 @@
|
||||
export TRANSIFEX_RESOURCE = frontend-app-account
|
||||
transifex_resource = frontend-app-account
|
||||
transifex_langs = "ar,fr,es_419,zh_CN"
|
||||
transifex_langs = "ar,de,es_419,fa_IR,fr,fr_CA,hi,it,pt,ru,uk,zh_CN,it_IT,pt_PT,de_DE"
|
||||
|
||||
intl_imports = ./node_modules/.bin/intl-imports.js
|
||||
transifex_utils = ./node_modules/.bin/transifex-utils.js
|
||||
i18n = ./src/i18n
|
||||
transifex_input = $(i18n)/transifex_input.json
|
||||
tx_url1 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/translation/en/strings/
|
||||
tx_url2 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/source/
|
||||
|
||||
# This directory must match .babelrc .
|
||||
transifex_temp = ./temp/babel-plugin-react-intl
|
||||
transifex_temp = ./temp/babel-plugin-formatjs
|
||||
|
||||
NPM_TESTS=build i18n_extract lint test is-es5
|
||||
NPM_TESTS=build i18n_extract lint test
|
||||
|
||||
.PHONY: test
|
||||
test: $(addprefix test.npm.,$(NPM_TESTS)) ## validate ci suite
|
||||
@@ -52,9 +51,24 @@ push_translations:
|
||||
# Pushing comments to Transifex...
|
||||
./node_modules/@edx/reactifex/bash_scripts/put_comments_v3.sh
|
||||
|
||||
ifeq ($(OPENEDX_ATLAS_PULL),)
|
||||
# Pulls translations from Transifex.
|
||||
pull_translations:
|
||||
tx pull -f --mode reviewed --languages=$(transifex_langs)
|
||||
tx pull -t -f --mode reviewed --languages=$(transifex_langs)
|
||||
else
|
||||
# Experimental: OEP-58 Pulls translations using atlas
|
||||
pull_translations:
|
||||
rm -rf src/i18n/messages
|
||||
mkdir src/i18n/messages
|
||||
cd src/i18n/messages \
|
||||
&& atlas pull --filter=$(transifex_langs) \
|
||||
translations/paragon/src/i18n/messages:paragon \
|
||||
translations/frontend-component-footer/src/i18n/messages:frontend-component-footer \
|
||||
translations/frontend-component-header/src/i18n/messages:frontend-component-header \
|
||||
translations/frontend-app-account/src/i18n/messages:frontend-app-account
|
||||
|
||||
$(intl_imports) paragon frontend-component-header frontend-component-footer frontend-app-account
|
||||
endif
|
||||
|
||||
# This target is used by Travis.
|
||||
validate-no-uncommitted-package-lock-changes:
|
||||
|
||||
35
README.rst
35
README.rst
@@ -3,8 +3,6 @@
|
||||
frontend-app-account
|
||||
====================
|
||||
|
||||
Please tag **@edx/community-engineering** on any PRs or issues. Thanks!
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
@@ -12,7 +10,7 @@ This is a micro-frontend application responsible for the display and updating of
|
||||
|
||||
What is the domain of this MFE?
|
||||
|
||||
In this MFE: Private user settings UIs. Public facing profile is in a `separate MFE (Profile) <https://github.com/edx/frontend-app-profile>`_
|
||||
In this MFE: Private user settings UIs. Public facing profile is in a `separate MFE (Profile) <https://github.com/openedx/frontend-app-profile>`_
|
||||
|
||||
- Account settings page
|
||||
|
||||
@@ -23,9 +21,9 @@ In this MFE: Private user settings UIs. Public facing profile is in a `separate
|
||||
Installation
|
||||
------------
|
||||
|
||||
This MFE is bundled with `Devstack <https://github.com/edx/devstack>`_, see the `Getting Started <https://github.com/edx/devstack#getting-started>`_ section for setup instructions.
|
||||
This MFE is bundled with `Devstack <https://github.com/openedx/devstack>`_, see the `Getting Started <https://github.com/openedx/devstack#getting-started>`_ section for setup instructions.
|
||||
|
||||
1. Install Devstack using the `Getting Started <https://github.com/edx/devstack#getting-started>`_ instructions.
|
||||
1. Install Devstack using the `Getting Started <https://github.com/openedx/devstack#getting-started>`_ instructions.
|
||||
|
||||
2. Start up Devstack, if it's not already started.
|
||||
|
||||
@@ -55,17 +53,28 @@ Example: ``https://support.example.com``
|
||||
|
||||
The fully-qualified URL to the support page in the target environment.
|
||||
|
||||
``PASSWORD_RESET_SUPPORT_LINK``
|
||||
|
||||
Examples:
|
||||
|
||||
- ``https://support.edx.org/hc/en-us/articles/206212088-What-if-I-did-not-receive-a-password-reset-message-``
|
||||
|
||||
- ``mailto:support@example.com``
|
||||
|
||||
The fully-qualified URL to the support page or email to request the support from in the target environment.
|
||||
|
||||
``ENABLE_ACCOUNT_DELETION``
|
||||
|
||||
Example: ``'false'`` | ``''`` (empty strings are true)
|
||||
|
||||
Enable the account deletion option, defaults to true.
|
||||
To disable account deletion set ``ENABLE_ACCOUNT_DELETION`` to ``'false'`` (string), otherwise it will default to true.
|
||||
|
||||
edX-specific Environment Variables
|
||||
**********************************
|
||||
|
||||
Furthermore, there are several edX-specific environment variables that enable integrations with closed-source services private to the edX organization, and are unsupported in Open edX. Enabling these environment variables will result in undefined behavior in Open edX installations:
|
||||
|
||||
``COACHING_ENABLED``
|
||||
|
||||
Example: ``true`` | ``''`` (empty strings are falsy)
|
||||
|
||||
Enables support for a section of the micro-frontend that helps users arrange for coaching sessions. Integrates with a private coaching plugin and is only used by edx.org.
|
||||
|
||||
``ENABLE_DEMOGRAPHICS_COLLECTION``
|
||||
|
||||
Example: ``true`` | ``''`` (empty strings are falsy)
|
||||
@@ -102,8 +111,8 @@ In the future, it's possible that demographics could be modeled as a plugin rath
|
||||
|
||||
==============================
|
||||
|
||||
.. |ci-badge| image:: https://github.com/edx/edx-developer-docs/actions/workflows/ci.yml/badge.svg
|
||||
:target: https://github.com/edx/edx-developer-docs/actions/workflows/ci.yml
|
||||
.. |ci-badge| image:: https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg
|
||||
:target: https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml
|
||||
:alt: Continuous Integration
|
||||
.. |Codecov| image:: https://img.shields.io/codecov/c/github/edx/frontend-app-account
|
||||
:target: https://codecov.io/gh/edx/frontend-app-account
|
||||
|
||||
41507
package-lock.json
generated
41507
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
85
package.json
85
package.json
@@ -6,50 +6,47 @@
|
||||
"license": "AGPL-3.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/edx/frontend-app-account.git"
|
||||
"url": "git+https://github.com/openedx/frontend-app-account.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "fedx-scripts webpack",
|
||||
"i18n_extract": "BABEL_ENV=i18n fedx-scripts babel src --quiet > /dev/null",
|
||||
"is-es5": "es-check es5 ./dist/*.js",
|
||||
"i18n_extract": "fedx-scripts formatjs extract",
|
||||
"lint": "fedx-scripts eslint --ext .js --ext .jsx .",
|
||||
"snapshot": "fedx-scripts jest --updateSnapshot",
|
||||
"start": "fedx-scripts webpack-dev-server --progress",
|
||||
"test": "fedx-scripts jest --coverage --passWithNoTests"
|
||||
"test": "TZ=UTC fedx-scripts jest --coverage --passWithNoTests"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/edx/frontend-app-account/issues"
|
||||
"url": "https://github.com/openedx/frontend-app-account/issues"
|
||||
},
|
||||
"homepage": "https://github.com/edx/frontend-app-account#readme",
|
||||
"homepage": "https://github.com/openedx/frontend-app-account#readme",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
"ie 11"
|
||||
"extends @edx/browserslist-config"
|
||||
],
|
||||
"dependencies": {
|
||||
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
||||
"@edx/frontend-component-footer": "10.2.0",
|
||||
"@edx/frontend-component-header": "2.4.5",
|
||||
"@edx/frontend-platform": "1.15.1",
|
||||
"@edx/paragon": "19.20.0",
|
||||
"@edx/brand": "npm:@edx/brand-openedx@1.2.0",
|
||||
"@edx/frontend-component-footer": "12.3.0",
|
||||
"@edx/frontend-component-header": "4.7.0",
|
||||
"@edx/frontend-platform": "5.5.4",
|
||||
"@edx/paragon": "20.46.2",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
||||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
||||
"@fortawesome/react-fontawesome": "0.1.16",
|
||||
"@fortawesome/react-fontawesome": "0.2.0",
|
||||
"@tensorflow-models/blazeface": "0.0.7",
|
||||
"@tensorflow/tfjs-converter": "1.7.4",
|
||||
"@tensorflow/tfjs-core": "1.7.4",
|
||||
"@tensorflow/tfjs-converter": "3.21.0",
|
||||
"@tensorflow/tfjs-core": "3.21.0",
|
||||
"bowser": "2.11.0",
|
||||
"classnames": "2.3.1",
|
||||
"core-js": "3.19.3",
|
||||
"classnames": "2.3.2",
|
||||
"core-js": "3.33.0",
|
||||
"font-awesome": "4.7.0",
|
||||
"form-urlencoded": "4.0.1",
|
||||
"form-urlencoded": "6.1.4",
|
||||
"formdata-polyfill": "4.0.10",
|
||||
"history": "4.10.1",
|
||||
"jslib-html5-camera-photo": "3.1.8",
|
||||
"jslib-html5-camera-photo": "3.3.4",
|
||||
"lodash.camelcase": "4.3.0",
|
||||
"lodash.debounce": "4.0.8",
|
||||
"lodash.findindex": "4.6.0",
|
||||
@@ -59,36 +56,38 @@
|
||||
"lodash.omit": "4.5.0",
|
||||
"lodash.pick": "4.4.0",
|
||||
"lodash.pickby": "4.6.0",
|
||||
"lodash.snakecase": "4.1.1",
|
||||
"long": "5.2.3",
|
||||
"memoize-one": "5.2.1",
|
||||
"prop-types": "15.7.2",
|
||||
"qs": "6.10.3",
|
||||
"react": "16.14.0",
|
||||
"react-dom": "16.14.0",
|
||||
"react-redux": "7.2.6",
|
||||
"react-router": "5.2.1",
|
||||
"react-router-dom": "5.3.0",
|
||||
"react-router-hash-link": "1.2.2",
|
||||
"prop-types": "15.8.1",
|
||||
"qs": "6.11.2",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
"react-helmet": "6.1.0",
|
||||
"react-redux": "7.2.9",
|
||||
"react-router": "6.14.2",
|
||||
"react-router-dom": "6.14.2",
|
||||
"react-router-hash-link": "2.4.3",
|
||||
"react-scrollspy": "3.4.3",
|
||||
"react-transition-group": "4.4.2",
|
||||
"redux": "4.1.2",
|
||||
"react-transition-group": "4.4.5",
|
||||
"redux": "4.2.1",
|
||||
"redux-devtools-extension": "2.13.9",
|
||||
"redux-logger": "3.0.6",
|
||||
"redux-saga": "1.1.3",
|
||||
"redux-thunk": "2.3.0",
|
||||
"regenerator-runtime": "0.13.9",
|
||||
"reselect": "4.0.0",
|
||||
"redux-saga": "1.2.3",
|
||||
"redux-thunk": "2.4.2",
|
||||
"regenerator-runtime": "0.14.0",
|
||||
"reselect": "4.1.8",
|
||||
"universal-cookie": "4.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@edx/frontend-build": "9.1.1",
|
||||
"@edx/reactifex": "^1.0.3",
|
||||
"@testing-library/jest-dom": "5.15.1",
|
||||
"@testing-library/react": "12.1.4",
|
||||
"codecov": "3.8.3",
|
||||
"@edx/browserslist-config": "1.2.0",
|
||||
"@edx/frontend-build": "13.0.1",
|
||||
"@edx/reactifex": "1.1.0",
|
||||
"@testing-library/jest-dom": "5.17.0",
|
||||
"@testing-library/react": "12.1.5",
|
||||
"@wojtekmaj/enzyme-adapter-react-17": "0.8.0",
|
||||
"enzyme": "3.11.0",
|
||||
"enzyme-adapter-react-16": "1.15.6",
|
||||
"es-check": "6.1.1",
|
||||
"react-test-renderer": "16.14.0",
|
||||
"react-test-renderer": "17.0.2",
|
||||
"reactifex": "1.1.1",
|
||||
"redux-mock-store": "1.5.4"
|
||||
}
|
||||
|
||||
@@ -1,17 +1,148 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Account | <%= process.env.SITE_NAME %></title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="shortcut icon" href="<%=htmlWebpackPlugin.options.FAVICON_URL%>" type="image/x-icon" />
|
||||
<% if (process.env.OPTIMIZELY_PROJECT_ID) { %>
|
||||
<script
|
||||
src="<%= process.env.MARKETING_SITE_BASE_URL %>/optimizelyjs/<%= process.env.OPTIMIZELY_PROJECT_ID %>.js"
|
||||
></script>
|
||||
<% } %>
|
||||
<title>Account | <%= process.env.SITE_NAME %></title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
href="<%=htmlWebpackPlugin.options.FAVICON_URL%>"
|
||||
type="image/x-icon"
|
||||
/>
|
||||
<% if (process.env.OPTIMIZELY_PROJECT_ID) { %>
|
||||
<script src="<%= process.env.MARKETING_SITE_BASE_URL %>/optimizelyjs/<%= process.env.OPTIMIZELY_PROJECT_ID %>.js"></script>
|
||||
<% } %>
|
||||
</head>
|
||||
<body>
|
||||
<!-- begin usabilla live embed code -->
|
||||
<script defer type="text/javascript">
|
||||
window.lightningjs ||
|
||||
(function (n) {
|
||||
var e = "lightningjs";
|
||||
function t(e, t) {
|
||||
var r, i, a, o, d, c;
|
||||
return (
|
||||
t && (t += (/\?/.test(t) ? "&" : "?") + "lv=1"),
|
||||
n[e] ||
|
||||
((r = window),
|
||||
(i = document),
|
||||
(a = e),
|
||||
(o = i.location.protocol),
|
||||
(d = "load"),
|
||||
(c = 0),
|
||||
(function () {
|
||||
n[a] = function () {
|
||||
var t = arguments,
|
||||
i = this,
|
||||
o = ++c,
|
||||
d = (i && i != r && i.id) || 0;
|
||||
function s() {
|
||||
return (s.id = o), n[a].apply(s, arguments);
|
||||
}
|
||||
return (
|
||||
(e.s = e.s || []).push([o, d, t]),
|
||||
(s.then = function (n, t, r) {
|
||||
var i = (e.fh[o] = e.fh[o] || []),
|
||||
a = (e.eh[o] = e.eh[o] || []),
|
||||
d = (e.ph[o] = e.ph[o] || []);
|
||||
return (
|
||||
n && i.push(n), t && a.push(t), r && d.push(r), s
|
||||
);
|
||||
}),
|
||||
s
|
||||
);
|
||||
};
|
||||
var e = (n[a]._ = {});
|
||||
function s() {
|
||||
e.P(d), (e.w = 1), n[a]("_load");
|
||||
}
|
||||
(e.fh = {}),
|
||||
(e.eh = {}),
|
||||
(e.ph = {}),
|
||||
(e.l = t
|
||||
? t.replace(/^\/\//, ("https:" == o ? o : "http:") + "//")
|
||||
: t),
|
||||
(e.p = { 0: +new Date() }),
|
||||
(e.P = function (n) {
|
||||
e.p[n] = new Date() - e.p[0];
|
||||
}),
|
||||
e.w && s(),
|
||||
r.addEventListener
|
||||
? r.addEventListener(d, s, !1)
|
||||
: r.attachEvent("onload", s);
|
||||
var l = function () {
|
||||
function n() {
|
||||
return [
|
||||
"<!DOCTYPE ",
|
||||
o,
|
||||
"><",
|
||||
o,
|
||||
"><head></head><",
|
||||
t,
|
||||
"><",
|
||||
r,
|
||||
' src="',
|
||||
e.l,
|
||||
'"></',
|
||||
r,
|
||||
"></",
|
||||
t,
|
||||
"></",
|
||||
o,
|
||||
">",
|
||||
].join("");
|
||||
}
|
||||
var t = "body",
|
||||
r = "script",
|
||||
o = "html",
|
||||
d = i[t];
|
||||
if (!d) return setTimeout(l, 100);
|
||||
e.P(1);
|
||||
var c,
|
||||
s = i.createElement("div"),
|
||||
h = s.appendChild(i.createElement("div")),
|
||||
u = i.createElement("iframe");
|
||||
(s.style.display = "none"),
|
||||
(d.insertBefore(s, d.firstChild).id = "lightningjs-" + a),
|
||||
(u.frameBorder = "0"),
|
||||
(u.id = "lightningjs-frame-" + a),
|
||||
/MSIE[ ]+6/.test(navigator.userAgent) &&
|
||||
(u.src = "javascript:false"),
|
||||
(u.allowTransparency = "true"),
|
||||
h.appendChild(u);
|
||||
try {
|
||||
u.contentWindow.document.open();
|
||||
} catch (n) {
|
||||
(e.domain = i.domain),
|
||||
(c =
|
||||
"javascript:var d=document.open();d.domain='" +
|
||||
i.domain +
|
||||
"';"),
|
||||
(u.src = c + "void(0);");
|
||||
}
|
||||
try {
|
||||
var p = u.contentWindow.document;
|
||||
p.write(n()), p.close();
|
||||
} catch (e) {
|
||||
u.src =
|
||||
c +
|
||||
'd.write("' +
|
||||
n().replace(/"/g, String.fromCharCode(92) + '"') +
|
||||
'");d.close();';
|
||||
}
|
||||
e.P(2);
|
||||
};
|
||||
e.l && l();
|
||||
})()),
|
||||
(n[e].lv = "1"),
|
||||
n[e]
|
||||
);
|
||||
}
|
||||
var r = (window.lightningjs = t(e));
|
||||
(r.require = t), (r.modules = n);
|
||||
})({});
|
||||
</script>
|
||||
<!-- end usabilla live embed code -->
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -22,6 +22,11 @@
|
||||
"pin"
|
||||
],
|
||||
"automerge": true
|
||||
},
|
||||
{
|
||||
"matchPackagePatterns": ["@edx", "@openedx"],
|
||||
"matchUpdateTypes": ["minor", "patch"],
|
||||
"automerge": true
|
||||
}
|
||||
],
|
||||
"timezone": "America/New_York"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { AppContext } from '@edx/frontend-platform/react';
|
||||
import { getConfig, history, getQueryParameters } from '@edx/frontend-platform';
|
||||
import { getConfig, getQueryParameters } from '@edx/frontend-platform';
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
@@ -31,35 +31,32 @@ import PageLoading from './PageLoading';
|
||||
import JumpNav from './JumpNav';
|
||||
import DeleteAccount from './delete-account';
|
||||
import EditableField from './EditableField';
|
||||
import EditableSelectField from './EditableSelectField';
|
||||
import ResetPassword from './reset-password';
|
||||
import NameChange from './name-change';
|
||||
import ThirdPartyAuth from './third-party-auth';
|
||||
import BetaLanguageBanner from './BetaLanguageBanner';
|
||||
import EmailField from './EmailField';
|
||||
import OneTimeDismissibleAlert from './OneTimeDismissibleAlert';
|
||||
import DOBModal from './DOBForm';
|
||||
import {
|
||||
YEAR_OF_BIRTH_OPTIONS,
|
||||
EDUCATION_LEVELS,
|
||||
GENDER_OPTIONS,
|
||||
COUNTRY_WITH_STATES,
|
||||
COPPA_COMPLIANCE_YEAR,
|
||||
getStatesList,
|
||||
} from './data/constants';
|
||||
import { fetchSiteLanguages } from './site-language';
|
||||
import CoachingToggle from './coaching/CoachingToggle';
|
||||
import DemographicsSection from './demographics/DemographicsSection';
|
||||
import { fetchCourseList } from '../notification-preferences/data/thunks';
|
||||
import { withLocation, withNavigate } from './hoc';
|
||||
|
||||
class AccountSettingsPage extends React.Component {
|
||||
constructor(props, context) {
|
||||
super(props, context);
|
||||
|
||||
// If there is a "duplicate_provider" query parameter, that's the backend's
|
||||
// way of telling us that the provider account the user tried to link is already linked
|
||||
// to another user account on the platform. We use this to display a message to that effect,
|
||||
// and remove the parameter from the URL.
|
||||
const duplicateTpaProvider = getQueryParameters().duplicate_provider;
|
||||
if (duplicateTpaProvider !== undefined) {
|
||||
history.replace(history.location.pathname);
|
||||
}
|
||||
this.state = {
|
||||
duplicateTpaProvider,
|
||||
};
|
||||
@@ -76,8 +73,9 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.props.fetchCourseList();
|
||||
this.props.fetchSettings();
|
||||
this.props.fetchSiteLanguages();
|
||||
this.props.fetchSiteLanguages(this.props.navigate);
|
||||
sendTrackingLogEvent('edx.user.settings.viewed', {
|
||||
page: 'account',
|
||||
visibility: null,
|
||||
@@ -146,28 +144,13 @@ class AccountSettingsPage extends React.Component {
|
||||
})),
|
||||
}));
|
||||
|
||||
sortDates = (a, b) => {
|
||||
const aTimeSinceEpoch = new Date(a).getTime();
|
||||
const bTimeSinceEpoch = new Date(b).getTime();
|
||||
|
||||
return bTimeSinceEpoch - aTimeSinceEpoch;
|
||||
}
|
||||
|
||||
sortVerifiedNameRecords = verifiedNameHistory => {
|
||||
if (Array.isArray(verifiedNameHistory)) {
|
||||
return [...verifiedNameHistory].sort(this.sortDates);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
handleEditableFieldChange = (name, value) => {
|
||||
this.props.updateDraft(name, value);
|
||||
}
|
||||
};
|
||||
|
||||
handleSubmit = (formId, values) => {
|
||||
this.props.saveSettings(formId, values);
|
||||
}
|
||||
};
|
||||
|
||||
handleSubmitProfileName = (formId, values) => {
|
||||
if (Object.keys(this.props.drafts).includes('useVerifiedNameForCerts')) {
|
||||
@@ -195,7 +178,7 @@ class AccountSettingsPage extends React.Component {
|
||||
} else {
|
||||
this.props.saveSettings(formId, values);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
isEditable(fieldName) {
|
||||
return !this.props.staticFields.includes(fieldName);
|
||||
@@ -212,6 +195,12 @@ class AccountSettingsPage extends React.Component {
|
||||
return null;
|
||||
}
|
||||
|
||||
// If there is a "duplicate_provider" query parameter, that's the backend's
|
||||
// way of telling us that the provider account the user tried to link is already linked
|
||||
// to another user account on the platform. We use this to display a message to that effect,
|
||||
// and remove the parameter from the URL.
|
||||
this.props.navigate(this.props.location, { replace: true });
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Alert variant="danger">
|
||||
@@ -280,7 +269,7 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
|
||||
return this.props.intl.formatMessage(messages[messageString]);
|
||||
}
|
||||
};
|
||||
|
||||
renderVerifiedNameSuccessMessage = (verifiedName, created) => {
|
||||
const dateValue = new Date(created).valueOf();
|
||||
@@ -295,7 +284,7 @@ class AccountSettingsPage extends React.Component {
|
||||
body={this.props.intl.formatMessage(messages['account.settings.field.name.verified.success.message'])}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
renderVerifiedNameFailureMessage = (verifiedName, created) => {
|
||||
const dateValue = new Date(created).valueOf();
|
||||
@@ -326,7 +315,7 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
renderVerifiedNameSubmittedMessage = (willCertNameChange) => (
|
||||
<Alert
|
||||
@@ -344,7 +333,7 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
</p>
|
||||
</Alert>
|
||||
)
|
||||
);
|
||||
|
||||
renderVerifiedNameMessage = verifiedNameRecord => {
|
||||
const {
|
||||
@@ -385,7 +374,7 @@ class AccountSettingsPage extends React.Component {
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
renderVerifiedNameIcon = (status) => {
|
||||
switch (status) {
|
||||
@@ -396,7 +385,7 @@ class AccountSettingsPage extends React.Component {
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
renderVerifiedNameHelpText = (status, proctoredExamId) => {
|
||||
let messageStr = 'account.settings.field.name.verified.help.text';
|
||||
@@ -421,7 +410,7 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
|
||||
return this.props.intl.formatMessage(messages[messageStr]);
|
||||
}
|
||||
};
|
||||
|
||||
renderEmptyStaticFieldMessage() {
|
||||
if (this.isManagedProfile()) {
|
||||
@@ -494,13 +483,37 @@ class AccountSettingsPage extends React.Component {
|
||||
);
|
||||
|
||||
const hasLinkedTPA = findIndex(this.props.tpaProviders, provider => provider.connected) >= 0;
|
||||
|
||||
// if user is under 13 and does not have cookie set
|
||||
const shouldUpdateDOB = (
|
||||
getConfig().ENABLE_COPPA_COMPLIANCE
|
||||
&& getConfig().ENABLE_DOB_UPDATE
|
||||
&& this.props.formValues.year_of_birth.toString() >= COPPA_COMPLIANCE_YEAR.toString()
|
||||
&& !localStorage.getItem('submittedDOB')
|
||||
);
|
||||
return (
|
||||
<>
|
||||
{ shouldUpdateDOB
|
||||
&& (
|
||||
<DOBModal
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
)}
|
||||
<div className="account-section pt-3 mb-5" id="basic-information" ref={this.navLinkRefs['#basic-information']}>
|
||||
{
|
||||
this.props.mostRecentVerifiedName
|
||||
&& this.renderVerifiedNameMessage(this.props.mostRecentVerifiedName)
|
||||
}
|
||||
{localStorage.getItem('submittedDOB')
|
||||
&& (
|
||||
<OneTimeDismissibleAlert
|
||||
id="updated-dob"
|
||||
variant="success"
|
||||
icon={CheckCircle}
|
||||
header={this.props.intl.formatMessage(messages['account.settings.field.dob.form.success'])}
|
||||
body=""
|
||||
/>
|
||||
)}
|
||||
|
||||
<h2 className="section-heading h4 mb-3">
|
||||
{this.props.intl.formatMessage(messages['account.settings.section.account.information'])}
|
||||
@@ -598,7 +611,7 @@ class AccountSettingsPage extends React.Component {
|
||||
<ResetPassword email={this.props.formValues.email} />
|
||||
{(!getConfig().ENABLE_COPPA_COMPLIANCE)
|
||||
&& (
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="year_of_birth"
|
||||
type="select"
|
||||
label={this.props.intl.formatMessage(messages['account.settings.field.dob'])}
|
||||
@@ -608,7 +621,7 @@ class AccountSettingsPage extends React.Component {
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
)}
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="country"
|
||||
type="select"
|
||||
value={this.props.formValues.country}
|
||||
@@ -624,7 +637,7 @@ class AccountSettingsPage extends React.Component {
|
||||
/>
|
||||
{showState
|
||||
&& (
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="state"
|
||||
type="select"
|
||||
value={this.props.formValues.state}
|
||||
@@ -646,16 +659,18 @@ class AccountSettingsPage extends React.Component {
|
||||
{this.props.intl.formatMessage(messages['account.settings.section.profile.information'])}
|
||||
</h2>
|
||||
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="level_of_education"
|
||||
type="select"
|
||||
value={this.props.formValues.level_of_education}
|
||||
options={educationLevelOptions}
|
||||
options={getConfig().ENABLE_COPPA_COMPLIANCE
|
||||
? educationLevelOptions.filter(option => option.value !== 'el')
|
||||
: educationLevelOptions}
|
||||
label={this.props.intl.formatMessage(messages['account.settings.field.education'])}
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.education.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="gender"
|
||||
type="select"
|
||||
value={this.props.formValues.gender}
|
||||
@@ -664,7 +679,7 @@ class AccountSettingsPage extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.gender.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="language_proficiencies"
|
||||
type="select"
|
||||
value={this.props.formValues.language_proficiencies}
|
||||
@@ -673,15 +688,6 @@ class AccountSettingsPage extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.language.proficiencies.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
{getConfig().COACHING_ENABLED
|
||||
&& this.props.formValues.coaching.eligible_for_coaching
|
||||
&& (
|
||||
<CoachingToggle
|
||||
name="coaching"
|
||||
phone_number={this.props.formValues.phone_number}
|
||||
coaching={this.props.formValues.coaching}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
{getConfig().ENABLE_DEMOGRAPHICS_COLLECTION && this.renderDemographicsSection()}
|
||||
<div className="account-section pt-3 mb-5" id="social-media">
|
||||
@@ -727,7 +733,7 @@ class AccountSettingsPage extends React.Component {
|
||||
</h2>
|
||||
|
||||
<BetaLanguageBanner />
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="siteLanguage"
|
||||
type="select"
|
||||
options={this.props.siteLanguageOptions}
|
||||
@@ -736,7 +742,7 @@ class AccountSettingsPage extends React.Component {
|
||||
helpText={this.props.intl.formatMessage(messages['account.settings.field.site.language.help.text'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="time_zone"
|
||||
type="select"
|
||||
value={this.props.formValues.time_zone}
|
||||
@@ -763,12 +769,15 @@ class AccountSettingsPage extends React.Component {
|
||||
<ThirdPartyAuth />
|
||||
</div>
|
||||
|
||||
<div className="account-section pt-3 mb-5" id="delete-account" ref={this.navLinkRefs['#delete-account']}>
|
||||
<DeleteAccount
|
||||
isVerifiedAccount={this.props.isActive}
|
||||
hasLinkedTPA={hasLinkedTPA}
|
||||
/>
|
||||
</div>
|
||||
{getConfig().ENABLE_ACCOUNT_DELETION
|
||||
&& (
|
||||
<div className="account-section pt-3 mb-5" id="delete-account" ref={this.navLinkRefs['#delete-account']}>
|
||||
<DeleteAccount
|
||||
isVerifiedAccount={this.props.isActive}
|
||||
hasLinkedTPA={hasLinkedTPA}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
</>
|
||||
);
|
||||
@@ -805,12 +814,12 @@ class AccountSettingsPage extends React.Component {
|
||||
</h1>
|
||||
<div>
|
||||
<div className="row">
|
||||
<div className="col-md-3">
|
||||
<div className="col-md-2">
|
||||
<JumpNav
|
||||
displayDemographicsLink={this.props.formValues.shouldDisplayDemographicsSection}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-md-9">
|
||||
<div className="col-md-10">
|
||||
{loading ? this.renderLoading() : null}
|
||||
{loaded ? this.renderContent() : null}
|
||||
{loadingError ? this.renderError() : null}
|
||||
@@ -848,11 +857,6 @@ AccountSettingsPage.propTypes = {
|
||||
social_link_facebook: PropTypes.string,
|
||||
social_link_twitter: PropTypes.string,
|
||||
time_zone: PropTypes.string,
|
||||
coaching: PropTypes.shape({
|
||||
coaching_consent: PropTypes.bool.isRequired,
|
||||
user: PropTypes.number.isRequired,
|
||||
eligible_for_coaching: PropTypes.bool.isRequired,
|
||||
}),
|
||||
state: PropTypes.string,
|
||||
shouldDisplayDemographicsSection: PropTypes.bool,
|
||||
useVerifiedNameForCerts: PropTypes.bool.isRequired,
|
||||
@@ -894,6 +898,7 @@ AccountSettingsPage.propTypes = {
|
||||
saveSettings: PropTypes.func.isRequired,
|
||||
fetchSettings: PropTypes.func.isRequired,
|
||||
beginNameChange: PropTypes.func.isRequired,
|
||||
fetchCourseList: PropTypes.func.isRequired,
|
||||
tpaProviders: PropTypes.arrayOf(PropTypes.shape({
|
||||
connected: PropTypes.bool,
|
||||
})),
|
||||
@@ -917,6 +922,8 @@ AccountSettingsPage.propTypes = {
|
||||
proctored_exam_attempt_id: PropTypes.number,
|
||||
}),
|
||||
),
|
||||
navigate: PropTypes.func.isRequired,
|
||||
location: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
AccountSettingsPage.defaultProps = {
|
||||
@@ -944,11 +951,12 @@ AccountSettingsPage.defaultProps = {
|
||||
verifiedNameHistory: [],
|
||||
};
|
||||
|
||||
export default connect(accountSettingsPageSelector, {
|
||||
export default withLocation(withNavigate(connect(accountSettingsPageSelector, {
|
||||
fetchCourseList,
|
||||
fetchSettings,
|
||||
saveSettings,
|
||||
saveMultipleSettings,
|
||||
updateDraft,
|
||||
fetchSiteLanguages,
|
||||
beginNameChange,
|
||||
})(injectIntl(AccountSettingsPage));
|
||||
})(injectIntl(AccountSettingsPage))));
|
||||
|
||||
@@ -266,6 +266,56 @@ const messages = defineMessages({
|
||||
defaultMessage: 'Select a year of birth',
|
||||
description: 'Option for empty value on account settings year of birth field.',
|
||||
},
|
||||
'account.settings.field.dob.month': {
|
||||
id: 'account.settings.field.dob.month',
|
||||
defaultMessage: 'Month',
|
||||
description: 'Label for account settings month of birth field.',
|
||||
},
|
||||
'account.settings.field.dob.year': {
|
||||
id: 'account.settings.field.dob.year',
|
||||
defaultMessage: 'Year',
|
||||
description: 'Label for account settings year of birth field.',
|
||||
},
|
||||
'account.settings.field.dob.month.default': {
|
||||
id: 'account.settings.field.month.year.default',
|
||||
defaultMessage: 'Select month',
|
||||
description: 'Default label for account settings month of birth field.',
|
||||
},
|
||||
'account.settings.field.dob.year.default': {
|
||||
id: 'account.settings.field.dob.year.default',
|
||||
defaultMessage: 'Select year',
|
||||
description: 'Default label for account settings year of birth field.',
|
||||
},
|
||||
'account.settings.field.dob.form.button': {
|
||||
id: 'account.settings.field.dob.form.button',
|
||||
defaultMessage: 'Please confirm your date of birth',
|
||||
description: 'Message to prompt user to enter dob',
|
||||
},
|
||||
'account.settings.field.dob.form.title': {
|
||||
id: 'account.settings.field.dob.form.title',
|
||||
defaultMessage: 'Enter your birth month and year',
|
||||
description: 'Title of DOB form',
|
||||
},
|
||||
'account.settings.field.dob.form.help.text': {
|
||||
id: 'account.settings.field.dob.form.help.text',
|
||||
defaultMessage: 'We ask for birth month and year information to help us comply with our legal obligations.',
|
||||
description: 'Help text for DOB form',
|
||||
},
|
||||
'account.settings.field.dob.form.success': {
|
||||
id: 'account.settings.field.dob.form.success',
|
||||
defaultMessage: 'Thank you for entering your information.',
|
||||
description: 'Title of banner when date of birth is successfully entered',
|
||||
},
|
||||
'account.settings.field.month_of_birth.options.empty': {
|
||||
id: 'account.settings.field.month_of_birth.options.empty',
|
||||
defaultMessage: 'Select a month of birth',
|
||||
description: 'Option for empty value on account settings month of birth field.',
|
||||
},
|
||||
'account.settingsfield.dob.error.general': {
|
||||
id: 'account.settingsfield.dob.error.general',
|
||||
defaultMessage: 'A technical error occurred. Please try again.',
|
||||
description: 'Generic error message.',
|
||||
},
|
||||
'account.settings.field.country': {
|
||||
id: 'account.settings.field.country',
|
||||
defaultMessage: 'Country',
|
||||
@@ -515,6 +565,11 @@ const messages = defineMessages({
|
||||
defaultMessage: 'No value set.',
|
||||
description: 'The placeholder for an empty but uneditable field when there is no administrator',
|
||||
},
|
||||
'notification.preferences.notifications.label': {
|
||||
id: 'notification.preferences.notifications.label',
|
||||
defaultMessage: 'Notifications',
|
||||
description: 'Label for Notifications',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
|
||||
@@ -2,18 +2,16 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classNames from 'classnames';
|
||||
|
||||
function Alert(props) {
|
||||
return (
|
||||
<div className={classNames('alert d-flex align-items-start', props.className)}>
|
||||
<div>
|
||||
{props.icon}
|
||||
</div>
|
||||
<div>
|
||||
{props.children}
|
||||
</div>
|
||||
const Alert = (props) => (
|
||||
<div className={classNames('alert d-flex align-items-start', props.className)}>
|
||||
<div>
|
||||
{props.icon}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
<div>
|
||||
{props.children}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
Alert.propTypes = {
|
||||
className: PropTypes.string,
|
||||
|
||||
@@ -49,6 +49,9 @@ class BetaLanguageBanner extends React.Component {
|
||||
|
||||
render() {
|
||||
const savedLanguage = this.getSiteLanguageEntry(this.context.locale);
|
||||
if (!savedLanguage) {
|
||||
return null;
|
||||
}
|
||||
const isSavedLanguageReleased = savedLanguage.released === true;
|
||||
const noPreviousLanguageSet = this.props.siteLanguage.previousValue === null;
|
||||
if (isSavedLanguageReleased || noPreviousLanguageSet) {
|
||||
|
||||
162
src/account-settings/DOBForm.jsx
Normal file
162
src/account-settings/DOBForm.jsx
Normal file
@@ -0,0 +1,162 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import {
|
||||
Form, StatefulButton, ModalDialog, ActionRow, useToggle, Button,
|
||||
} from '@edx/paragon';
|
||||
import React, { useCallback, useEffect, useState } from 'react';
|
||||
import { connect, useDispatch } from 'react-redux';
|
||||
import messages from './AccountSettingsPage.messages';
|
||||
import { YEAR_OF_BIRTH_OPTIONS } from './data/constants';
|
||||
import { editableFieldSelector } from './data/selectors';
|
||||
import { saveSettingsReset } from './data/actions';
|
||||
|
||||
const DOBModal = (props) => {
|
||||
const {
|
||||
saveState,
|
||||
error,
|
||||
onSubmit,
|
||||
intl,
|
||||
} = props;
|
||||
|
||||
const dispatch = useDispatch();
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [isOpen, open, close, toggle] = useToggle(true, {});
|
||||
const [monthValue, setMonthValue] = useState('');
|
||||
const [yearValue, setYearValue] = useState('');
|
||||
|
||||
const handleChange = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (e.target.name === 'month') {
|
||||
setMonthValue(e.target.value);
|
||||
} else if (e.target.name === 'year') {
|
||||
setYearValue(e.target.value);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
const data = monthValue !== '' && yearValue !== '' ? [{ field_name: 'DOB', field_value: `${yearValue}-${monthValue}` }] : [];
|
||||
onSubmit('extended_profile', data);
|
||||
};
|
||||
|
||||
const handleComplete = useCallback(() => {
|
||||
localStorage.setItem('submittedDOB', 'true');
|
||||
close();
|
||||
dispatch(saveSettingsReset());
|
||||
}, [dispatch, close]);
|
||||
|
||||
const handleClose = useCallback(() => {
|
||||
close();
|
||||
dispatch(saveSettingsReset());
|
||||
}, [dispatch, close]);
|
||||
|
||||
function renderErrors() {
|
||||
if (saveState === 'error' || error) {
|
||||
return (
|
||||
<Form.Control.Feedback type="invalid" key="general-error">
|
||||
{intl.formatMessage(messages['account.settingsfield.dob.error.general'])}
|
||||
</Form.Control.Feedback>
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (saveState === 'complete' && isOpen) {
|
||||
handleComplete();
|
||||
}
|
||||
}, [handleComplete, saveState, isOpen, monthValue, yearValue]);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Button variant="primary" onClick={open}>
|
||||
{intl.formatMessage(messages['account.settings.field.dob.form.button'])}
|
||||
</Button>
|
||||
<ModalDialog
|
||||
title={intl.formatMessage(messages['account.settings.field.dob.form.title'])}
|
||||
isOpen={isOpen}
|
||||
onClose={handleClose}
|
||||
hasCloseButton={false}
|
||||
variant="default"
|
||||
>
|
||||
<form onSubmit={handleSubmit}>
|
||||
|
||||
<ModalDialog.Header>
|
||||
<ModalDialog.Title>
|
||||
{intl.formatMessage(messages['account.settings.field.dob.form.title'])}
|
||||
</ModalDialog.Title>
|
||||
</ModalDialog.Header>
|
||||
|
||||
<ModalDialog.Body className="overflow-hidden" style={{ padding: '1.5rem' }}>
|
||||
<p>{intl.formatMessage(messages['account.settings.field.dob.form.help.text'])}</p>
|
||||
<Form.Group>
|
||||
<Form.Label>
|
||||
{intl.formatMessage(messages['account.settings.field.dob.month'])}
|
||||
</Form.Label>
|
||||
<Form.Control
|
||||
as="select"
|
||||
name="month"
|
||||
onChange={handleChange}
|
||||
>
|
||||
<option value="">{intl.formatMessage(messages['account.settings.field.dob.month.default'])}</option>
|
||||
{[...Array(12).keys()].map(month => (
|
||||
<option key={month + 1} value={month + 1}>{month + 1}</option>
|
||||
))}
|
||||
</Form.Control>
|
||||
</Form.Group>
|
||||
<Form.Group>
|
||||
<Form.Label>
|
||||
{intl.formatMessage(messages['account.settings.field.dob.year'])}
|
||||
</Form.Label>
|
||||
<Form.Control
|
||||
as="select"
|
||||
name="year"
|
||||
onChange={handleChange}
|
||||
>
|
||||
<option value="">{intl.formatMessage(messages['account.settings.field.dob.year.default'])}</option>
|
||||
{YEAR_OF_BIRTH_OPTIONS.map(year => (
|
||||
<option key={year.value} value={year.value}>{year.label}</option>
|
||||
))}
|
||||
</Form.Control>
|
||||
</Form.Group>
|
||||
{renderErrors()}
|
||||
</ModalDialog.Body>
|
||||
|
||||
<ModalDialog.Footer>
|
||||
<ActionRow>
|
||||
<ModalDialog.CloseButton variant="tertiary">
|
||||
Cancel
|
||||
</ModalDialog.CloseButton>
|
||||
<StatefulButton
|
||||
type="submit"
|
||||
state={!(monthValue && yearValue) ? 'unedited' : saveState}
|
||||
labels={{
|
||||
default: intl.formatMessage(messages['account.settings.editable.field.action.save']),
|
||||
}}
|
||||
disabledStates={['unedited']}
|
||||
/>
|
||||
</ActionRow>
|
||||
</ModalDialog.Footer>
|
||||
|
||||
</form>
|
||||
</ModalDialog>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
DOBModal.propTypes = {
|
||||
saveState: PropTypes.oneOf(['default', 'pending', 'complete', 'error']),
|
||||
error: PropTypes.string,
|
||||
onSubmit: PropTypes.func.isRequired,
|
||||
intl: intlShape.isRequired,
|
||||
};
|
||||
|
||||
DOBModal.defaultProps = {
|
||||
saveState: undefined,
|
||||
error: undefined,
|
||||
};
|
||||
|
||||
export default connect(editableFieldSelector)(injectIntl(DOBModal));
|
||||
@@ -1,10 +1,9 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import {
|
||||
Button, Input, StatefulButton, ValidationFormGroup,
|
||||
Button, Form, StatefulButton,
|
||||
} from '@edx/paragon';
|
||||
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
@@ -19,7 +18,7 @@ import {
|
||||
import { editableFieldSelector } from './data/selectors';
|
||||
import CertificatePreference from './certificate-preference/CertificatePreference';
|
||||
|
||||
function EditableField(props) {
|
||||
const EditableField = (props) => {
|
||||
const {
|
||||
name,
|
||||
label,
|
||||
@@ -27,7 +26,6 @@ function EditableField(props) {
|
||||
type,
|
||||
value,
|
||||
userSuppliedValue,
|
||||
options,
|
||||
saveState,
|
||||
error,
|
||||
confirmationMessageDefinition,
|
||||
@@ -44,10 +42,6 @@ function EditableField(props) {
|
||||
...others
|
||||
} = props;
|
||||
const id = `field-${name}`;
|
||||
let inputOptions = options;
|
||||
if (getConfig().ENABLE_COPPA_COMPLIANCE && name === 'level_of_education' && options) {
|
||||
inputOptions = options.filter(option => option.value !== 'el');
|
||||
}
|
||||
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
@@ -79,15 +73,6 @@ function EditableField(props) {
|
||||
}
|
||||
let finalValue = rawValue;
|
||||
|
||||
if (options) {
|
||||
// Use == instead of === to prevent issues when HTML casts numbers as strings
|
||||
// eslint-disable-next-line eqeqeq
|
||||
const selectedOption = options.find(option => option.value == rawValue);
|
||||
if (selectedOption) {
|
||||
finalValue = selectedOption.label;
|
||||
}
|
||||
}
|
||||
|
||||
if (userSuppliedValue) {
|
||||
finalValue += `: ${userSuppliedValue}`;
|
||||
}
|
||||
@@ -111,25 +96,24 @@ function EditableField(props) {
|
||||
editing: (
|
||||
<>
|
||||
<form onSubmit={handleSubmit}>
|
||||
<ValidationFormGroup
|
||||
for={id}
|
||||
invalid={error != null}
|
||||
invalidMessage={error}
|
||||
helpText={helpText}
|
||||
<Form.Group
|
||||
controlId={id}
|
||||
isInvalid={error != null}
|
||||
>
|
||||
<label className="h6 d-block" htmlFor={id}>{label}</label>
|
||||
<Input
|
||||
<Form.Label size="sm" className="h6 d-block" htmlFor={id}>{label}</Form.Label>
|
||||
<Form.Control
|
||||
data-hj-suppress
|
||||
name={name}
|
||||
id={id}
|
||||
type={type}
|
||||
value={value}
|
||||
onChange={handleChange}
|
||||
options={inputOptions}
|
||||
{...others}
|
||||
/>
|
||||
<>{others.children}</>
|
||||
</ValidationFormGroup>
|
||||
{!!helpText && <Form.Text>{helpText}</Form.Text>}
|
||||
{error != null && <Form.Control.Feedback hasIcon={false}>{error}</Form.Control.Feedback>}
|
||||
{others.children}
|
||||
</Form.Group>
|
||||
<p>
|
||||
<StatefulButton
|
||||
type="submit"
|
||||
@@ -178,7 +162,7 @@ function EditableField(props) {
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
EditableField.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
@@ -187,10 +171,6 @@ EditableField.propTypes = {
|
||||
type: PropTypes.string.isRequired,
|
||||
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
userSuppliedValue: PropTypes.string,
|
||||
options: PropTypes.arrayOf(PropTypes.shape({
|
||||
label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
})),
|
||||
saveState: PropTypes.oneOf(['default', 'pending', 'complete', 'error']),
|
||||
error: PropTypes.string,
|
||||
confirmationMessageDefinition: PropTypes.shape({
|
||||
@@ -212,7 +192,6 @@ EditableField.propTypes = {
|
||||
|
||||
EditableField.defaultProps = {
|
||||
value: undefined,
|
||||
options: undefined,
|
||||
saveState: undefined,
|
||||
label: undefined,
|
||||
emptyLabel: undefined,
|
||||
|
||||
232
src/account-settings/EditableSelectField.jsx
Normal file
232
src/account-settings/EditableSelectField.jsx
Normal file
@@ -0,0 +1,232 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import {
|
||||
Button, Form, StatefulButton,
|
||||
} from '@edx/paragon';
|
||||
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
|
||||
import SwitchContent from './SwitchContent';
|
||||
import messages from './AccountSettingsPage.messages';
|
||||
|
||||
import {
|
||||
openForm,
|
||||
closeForm,
|
||||
} from './data/actions';
|
||||
import { editableFieldSelector } from './data/selectors';
|
||||
import CertificatePreference from './certificate-preference/CertificatePreference';
|
||||
|
||||
const EditableSelectField = (props) => {
|
||||
const {
|
||||
name,
|
||||
label,
|
||||
emptyLabel,
|
||||
type,
|
||||
value,
|
||||
userSuppliedValue,
|
||||
options,
|
||||
saveState,
|
||||
error,
|
||||
confirmationMessageDefinition,
|
||||
confirmationValue,
|
||||
helpText,
|
||||
onEdit,
|
||||
onCancel,
|
||||
onSubmit,
|
||||
onChange,
|
||||
isEditing,
|
||||
isEditable,
|
||||
isGrayedOut,
|
||||
intl,
|
||||
...others
|
||||
} = props;
|
||||
const id = `field-${name}`;
|
||||
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
onSubmit(name, new FormData(e.target).get(name));
|
||||
};
|
||||
|
||||
const handleChange = (e) => {
|
||||
onChange(name, e.target.value);
|
||||
};
|
||||
|
||||
const handleEdit = () => {
|
||||
onEdit(name);
|
||||
};
|
||||
|
||||
const handleCancel = () => {
|
||||
onCancel(name);
|
||||
};
|
||||
|
||||
const renderEmptyLabel = () => {
|
||||
if (isEditable) {
|
||||
return <Button variant="link" onClick={handleEdit} className="p-0">{emptyLabel}</Button>;
|
||||
}
|
||||
return <span className="text-muted">{emptyLabel}</span>;
|
||||
};
|
||||
|
||||
const renderValue = (rawValue) => {
|
||||
if (!rawValue) {
|
||||
return renderEmptyLabel();
|
||||
}
|
||||
let finalValue = rawValue;
|
||||
|
||||
if (options) {
|
||||
// Use == instead of === to prevent issues when HTML casts numbers as strings
|
||||
// eslint-disable-next-line eqeqeq
|
||||
const selectedOption = options.find(option => option.value == rawValue);
|
||||
if (selectedOption) {
|
||||
finalValue = selectedOption.label;
|
||||
}
|
||||
}
|
||||
|
||||
if (userSuppliedValue) {
|
||||
finalValue += `: ${userSuppliedValue}`;
|
||||
}
|
||||
|
||||
return finalValue;
|
||||
};
|
||||
|
||||
const renderConfirmationMessage = () => {
|
||||
if (!confirmationMessageDefinition || !confirmationValue) {
|
||||
return null;
|
||||
}
|
||||
return intl.formatMessage(confirmationMessageDefinition, {
|
||||
value: confirmationValue,
|
||||
});
|
||||
};
|
||||
const selectOptions = options.map(option => (
|
||||
<option value={option.value} key={`${option.value}-${option.label}`}>{option.label}</option>
|
||||
));
|
||||
|
||||
return (
|
||||
<SwitchContent
|
||||
expression={isEditing ? 'editing' : 'default'}
|
||||
cases={{
|
||||
editing: (
|
||||
<>
|
||||
<form onSubmit={handleSubmit}>
|
||||
<Form.Group
|
||||
controlId={id}
|
||||
isInvalid={error != null}
|
||||
>
|
||||
<Form.Label size="sm" className="h6 d-block" htmlFor={id}>{label}</Form.Label>
|
||||
<Form.Control
|
||||
data-hj-suppress
|
||||
name={name}
|
||||
id={id}
|
||||
type={type}
|
||||
as={type}
|
||||
value={value}
|
||||
onChange={handleChange}
|
||||
{...others}
|
||||
>
|
||||
{options.length > 0 && selectOptions}
|
||||
</Form.Control>
|
||||
{!!helpText && <Form.Text>{helpText}</Form.Text>}
|
||||
{error != null && <Form.Control.Feedback>{error}</Form.Control.Feedback>}
|
||||
{others.children}
|
||||
</Form.Group>
|
||||
<p>
|
||||
<StatefulButton
|
||||
type="submit"
|
||||
className="mr-2"
|
||||
state={saveState}
|
||||
labels={{
|
||||
default: intl.formatMessage(messages['account.settings.editable.field.action.save']),
|
||||
}}
|
||||
onClick={(e) => {
|
||||
// Swallow clicks if the state is pending.
|
||||
// We do this instead of disabling the button to prevent
|
||||
// it from losing focus (disabled elements cannot have focus).
|
||||
// Disabling it would causes upstream issues in focus management.
|
||||
// Swallowing the onSubmit event on the form would be better, but
|
||||
// we would have to add that logic for every field given our
|
||||
// current structure of the application.
|
||||
if (saveState === 'pending') { e.preventDefault(); }
|
||||
}}
|
||||
disabledStates={[]}
|
||||
/>
|
||||
<Button
|
||||
variant="outline-primary"
|
||||
onClick={handleCancel}
|
||||
>
|
||||
{intl.formatMessage(messages['account.settings.editable.field.action.cancel'])}
|
||||
</Button>
|
||||
</p>
|
||||
</form>
|
||||
{['name', 'verified_name'].includes(name) && <CertificatePreference fieldName={name} />}
|
||||
</>
|
||||
),
|
||||
default: (
|
||||
<div className="form-group">
|
||||
<div className="d-flex align-items-start">
|
||||
<h6 aria-level="3">{label}</h6>
|
||||
{isEditable ? (
|
||||
<Button variant="link" onClick={handleEdit} className="ml-3">
|
||||
<FontAwesomeIcon className="mr-1" icon={faPencilAlt} />{intl.formatMessage(messages['account.settings.editable.field.action.edit'])}
|
||||
</Button>
|
||||
) : null}
|
||||
</div>
|
||||
<p data-hj-suppress className={isGrayedOut ? 'grayed-out' : null}>{renderValue(value)}</p>
|
||||
<p className="small text-muted mt-n2">{renderConfirmationMessage() || helpText}</p>
|
||||
</div>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
EditableSelectField.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
label: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.node]),
|
||||
emptyLabel: PropTypes.node,
|
||||
type: PropTypes.string.isRequired,
|
||||
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
userSuppliedValue: PropTypes.string,
|
||||
options: PropTypes.arrayOf(PropTypes.shape({
|
||||
label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
})),
|
||||
saveState: PropTypes.oneOf(['default', 'pending', 'complete', 'error']),
|
||||
error: PropTypes.string,
|
||||
confirmationMessageDefinition: PropTypes.shape({
|
||||
id: PropTypes.string.isRequired,
|
||||
defaultMessage: PropTypes.string.isRequired,
|
||||
description: PropTypes.string,
|
||||
}),
|
||||
confirmationValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||
helpText: PropTypes.node,
|
||||
onEdit: PropTypes.func.isRequired,
|
||||
onCancel: PropTypes.func.isRequired,
|
||||
onSubmit: PropTypes.func.isRequired,
|
||||
onChange: PropTypes.func.isRequired,
|
||||
isEditing: PropTypes.bool,
|
||||
isEditable: PropTypes.bool,
|
||||
isGrayedOut: PropTypes.bool,
|
||||
intl: intlShape.isRequired,
|
||||
};
|
||||
|
||||
EditableSelectField.defaultProps = {
|
||||
value: undefined,
|
||||
options: [],
|
||||
saveState: undefined,
|
||||
label: undefined,
|
||||
emptyLabel: undefined,
|
||||
error: undefined,
|
||||
confirmationMessageDefinition: undefined,
|
||||
confirmationValue: undefined,
|
||||
helpText: undefined,
|
||||
isEditing: false,
|
||||
isEditable: true,
|
||||
isGrayedOut: false,
|
||||
userSuppliedValue: undefined,
|
||||
};
|
||||
|
||||
export default connect(editableFieldSelector, {
|
||||
onEdit: openForm,
|
||||
onCancel: closeForm,
|
||||
})(injectIntl(EditableSelectField));
|
||||
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import { injectIntl, intlShape, FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
import {
|
||||
Button, StatefulButton, Input, ValidationFormGroup,
|
||||
Button, StatefulButton, Form,
|
||||
} from '@edx/paragon';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import { faExclamationTriangle, faPencilAlt } from '@fortawesome/free-solid-svg-icons';
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
} from './data/actions';
|
||||
import { editableFieldSelector } from './data/selectors';
|
||||
|
||||
function EmailField(props) {
|
||||
const EmailField = (props) => {
|
||||
const {
|
||||
name,
|
||||
label,
|
||||
@@ -106,14 +106,12 @@ function EmailField(props) {
|
||||
cases={{
|
||||
editing: (
|
||||
<form onSubmit={handleSubmit}>
|
||||
<ValidationFormGroup
|
||||
for={id}
|
||||
invalid={error != null}
|
||||
invalidMessage={error}
|
||||
helpText={helpText}
|
||||
<Form.Group
|
||||
controlId={id}
|
||||
isInvalid={error != null}
|
||||
>
|
||||
<label className="h6 d-block" htmlFor={id}>{label}</label>
|
||||
<Input
|
||||
<Form.Label className="h6 d-block" htmlFor={id}>{label}</Form.Label>
|
||||
<Form.Control
|
||||
data-hj-suppress
|
||||
name={name}
|
||||
id={id}
|
||||
@@ -121,7 +119,9 @@ function EmailField(props) {
|
||||
value={value}
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</ValidationFormGroup>
|
||||
{!!helpText && <Form.Text>{helpText}</Form.Text>}
|
||||
{error != null && <Form.Control.Feedback hasIcon={false}>{error}</Form.Control.Feedback>}
|
||||
</Form.Group>
|
||||
<p>
|
||||
<StatefulButton
|
||||
type="submit"
|
||||
@@ -169,7 +169,7 @@ function EmailField(props) {
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
EmailField.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
|
||||
@@ -1,20 +1,26 @@
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { breakpoints, useWindowSize } from '@edx/paragon';
|
||||
import { breakpoints, useWindowSize, Icon } from '@edx/paragon';
|
||||
import { OpenInNew } from '@edx/paragon/icons';
|
||||
import classNames from 'classnames';
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { NavHashLink } from 'react-router-hash-link';
|
||||
import Scrollspy from 'react-scrollspy';
|
||||
import { Link } from 'react-router-dom';
|
||||
import messages from './AccountSettingsPage.messages';
|
||||
import { selectShowPreferences } from '../notification-preferences/data/selectors';
|
||||
|
||||
function JumpNav({
|
||||
const JumpNav = ({
|
||||
intl,
|
||||
displayDemographicsLink,
|
||||
}) {
|
||||
}) => {
|
||||
const stickToTop = useWindowSize().width > breakpoints.small.minWidth;
|
||||
const showPreferences = useSelector(selectShowPreferences());
|
||||
|
||||
return (
|
||||
<div className={classNames('jump-nav', { 'jump-nav-sm position-sticky pt-3': stickToTop })}>
|
||||
<div className={classNames('jump-nav px-2.25', { 'jump-nav-sm position-sticky pt-3': stickToTop })}>
|
||||
<Scrollspy
|
||||
items={[
|
||||
'basic-information',
|
||||
@@ -61,15 +67,33 @@ function JumpNav({
|
||||
{intl.formatMessage(messages['account.settings.section.linked.accounts'])}
|
||||
</NavHashLink>
|
||||
</li>
|
||||
<li>
|
||||
<NavHashLink to="#delete-account">
|
||||
{intl.formatMessage(messages['account.settings.jump.nav.delete.account'])}
|
||||
</NavHashLink>
|
||||
</li>
|
||||
{getConfig().ENABLE_ACCOUNT_DELETION
|
||||
&& (
|
||||
<li>
|
||||
<NavHashLink to="#delete-account">
|
||||
{intl.formatMessage(messages['account.settings.jump.nav.delete.account'])}
|
||||
</NavHashLink>
|
||||
</li>
|
||||
)}
|
||||
</Scrollspy>
|
||||
{showPreferences && (
|
||||
<>
|
||||
<hr />
|
||||
<Scrollspy
|
||||
className="list-unstyled"
|
||||
>
|
||||
<li>
|
||||
<Link to="/notifications" target="_blank" rel="noopener noreferrer">
|
||||
<span>{intl.formatMessage(messages['notification.preferences.notifications.label'])}</span>
|
||||
<Icon className="d-inline-block align-bottom ml-1" src={OpenInNew} />
|
||||
</Link>
|
||||
</li>
|
||||
</Scrollspy>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
JumpNav.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import React from 'react';
|
||||
import { FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
|
||||
export default function NotFoundPage() {
|
||||
return (
|
||||
<div className="container-fluid d-flex py-5 justify-content-center align-items-start text-center">
|
||||
<p className="my-0 py-5 text-muted" style={{ maxWidth: '32em' }}>
|
||||
<FormattedMessage
|
||||
id="error.notfound.message"
|
||||
defaultMessage="The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again."
|
||||
description="Error message when a page does not exist"
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
const NotFoundPage = () => (
|
||||
<div
|
||||
className="container-fluid d-flex py-5 justify-content-center align-items-start text-center"
|
||||
data-testid="not-found-page"
|
||||
>
|
||||
<p className="my-0 py-5 text-muted" style={{ maxWidth: '32em' }}>
|
||||
<FormattedMessage
|
||||
id="error.notfound.message"
|
||||
defaultMessage="The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again."
|
||||
description="Error message when a page does not exist"
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
export default NotFoundPage;
|
||||
|
||||
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
||||
|
||||
import { Alert } from '@edx/paragon';
|
||||
|
||||
export default function OneTimeDismissibleAlert(props) {
|
||||
const OneTimeDismissibleAlert = (props) => {
|
||||
const [dismissed, setDismissed] = useState(localStorage.getItem(props.id) !== 'true');
|
||||
|
||||
const onClose = () => {
|
||||
@@ -25,7 +25,7 @@ export default function OneTimeDismissibleAlert(props) {
|
||||
</p>
|
||||
</Alert>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
OneTimeDismissibleAlert.propTypes = {
|
||||
id: PropTypes.string.isRequired,
|
||||
@@ -41,3 +41,5 @@ OneTimeDismissibleAlert.defaultProps = {
|
||||
header: undefined,
|
||||
body: undefined,
|
||||
};
|
||||
|
||||
export default OneTimeDismissibleAlert;
|
||||
|
||||
@@ -22,7 +22,7 @@ const onChildExit = (htmlNode) => {
|
||||
}
|
||||
};
|
||||
|
||||
function SwitchContent({ expression, cases, className }) {
|
||||
const SwitchContent = ({ expression, cases, className }) => {
|
||||
const getContent = (caseKey) => {
|
||||
if (cases[caseKey]) {
|
||||
if (typeof cases[caseKey] === 'string') {
|
||||
@@ -48,7 +48,7 @@ function SwitchContent({ expression, cases, className }) {
|
||||
{getContent(expression)}
|
||||
</TransitionReplace>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
SwitchContent.propTypes = {
|
||||
expression: PropTypes.string,
|
||||
|
||||
@@ -21,25 +21,20 @@ import { certPreferenceSelector } from '../data/selectors';
|
||||
import commonMessages from '../AccountSettingsPage.messages';
|
||||
import messages from './messages';
|
||||
|
||||
function CertificatePreference({
|
||||
const CertificatePreference = ({
|
||||
intl,
|
||||
fieldName,
|
||||
originalFullName,
|
||||
originalVerifiedName,
|
||||
saveState,
|
||||
useVerifiedNameForCerts,
|
||||
}) {
|
||||
if (!originalVerifiedName) {
|
||||
// If the user doesn't have an approved verified name, do not display this component
|
||||
return null;
|
||||
}
|
||||
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
const [checked, setChecked] = useState(false);
|
||||
const [modalIsOpen, setModalIsOpen] = useState(false);
|
||||
const formId = 'useVerifiedNameForCerts';
|
||||
|
||||
function handleCheckboxChange() {
|
||||
const handleCheckboxChange = () => {
|
||||
if (!checked) {
|
||||
if (fieldName === 'verified_name') {
|
||||
dispatch(updateDraft(formId, true));
|
||||
@@ -49,22 +44,22 @@ function CertificatePreference({
|
||||
} else {
|
||||
setModalIsOpen(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function handleCancel() {
|
||||
const handleCancel = () => {
|
||||
setModalIsOpen(false);
|
||||
dispatch(resetDrafts());
|
||||
}
|
||||
};
|
||||
|
||||
function handleModalChange(e) {
|
||||
const handleModalChange = (e) => {
|
||||
if (e.target.value === 'fullName') {
|
||||
dispatch(updateDraft(formId, false));
|
||||
} else {
|
||||
dispatch(updateDraft(formId, true));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function handleSubmit(e) {
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (saveState === 'pending') {
|
||||
@@ -72,24 +67,30 @@ function CertificatePreference({
|
||||
}
|
||||
|
||||
dispatch(saveSettings(formId, useVerifiedNameForCerts));
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (fieldName === 'verified_name') {
|
||||
setChecked(useVerifiedNameForCerts);
|
||||
} else {
|
||||
setChecked(!useVerifiedNameForCerts);
|
||||
if (originalVerifiedName) {
|
||||
if (fieldName === 'verified_name') {
|
||||
setChecked(useVerifiedNameForCerts);
|
||||
} else {
|
||||
setChecked(!useVerifiedNameForCerts);
|
||||
}
|
||||
}
|
||||
}, [useVerifiedNameForCerts]);
|
||||
}, [originalVerifiedName, fieldName, useVerifiedNameForCerts]);
|
||||
|
||||
useEffect(() => {
|
||||
if (modalIsOpen && saveState === 'complete') {
|
||||
setModalIsOpen(false);
|
||||
dispatch(closeForm(fieldName));
|
||||
if (originalVerifiedName) {
|
||||
if (modalIsOpen && saveState === 'complete') {
|
||||
setModalIsOpen(false);
|
||||
dispatch(closeForm(fieldName));
|
||||
}
|
||||
}
|
||||
}, [modalIsOpen, saveState]);
|
||||
}, [dispatch, originalVerifiedName, fieldName, modalIsOpen, saveState]);
|
||||
|
||||
return (
|
||||
// If the user doesn't have an approved verified name, do not display this component
|
||||
|
||||
return originalVerifiedName ? (
|
||||
<>
|
||||
<Form.Checkbox className="mt-1 mb-4" checked={checked} onChange={handleCheckboxChange}>
|
||||
{intl.formatMessage(messages['account.settings.field.name.checkbox.certificate.select'])}
|
||||
@@ -150,8 +151,8 @@ function CertificatePreference({
|
||||
</Form>
|
||||
</ModalDialog>
|
||||
</>
|
||||
);
|
||||
}
|
||||
) : null;
|
||||
};
|
||||
|
||||
CertificatePreference.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/* eslint-disable no-import-assign */
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { Provider } from 'react-redux';
|
||||
import { Router } from 'react-router-dom';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import {
|
||||
fireEvent,
|
||||
render,
|
||||
screen,
|
||||
} from '@testing-library/react';
|
||||
import { createMemoryHistory } from 'history';
|
||||
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
@@ -27,8 +27,6 @@ jest.mock('react-redux', () => ({
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
jest.mock('../../data/selectors', () => jest.fn().mockImplementation(() => ({ certPreferenceSelector: () => ({}) })));
|
||||
|
||||
const history = createMemoryHistory();
|
||||
|
||||
const IntlCertificatePreference = injectIntl(CertificatePreference);
|
||||
|
||||
const mockStore = configureStore();
|
||||
@@ -41,7 +39,7 @@ describe('NameChange', () => {
|
||||
const labelText = 'If checked, this name will appear on your certificates and public-facing records.';
|
||||
|
||||
const reduxWrapper = children => (
|
||||
<Router history={history}>
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<Provider store={store}>{children}</Provider>
|
||||
</IntlProvider>
|
||||
|
||||
@@ -1,269 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
import { getConfig, getQueryParameters } from '@edx/frontend-platform';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { Hyperlink } from '@edx/paragon';
|
||||
import { faCheck } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import get from 'lodash.get';
|
||||
import { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
||||
|
||||
import PageLoading from '../PageLoading';
|
||||
import CoachingConsentForm from './CoachingConsentForm';
|
||||
import messages from './CoachingConsent.messages';
|
||||
import LogoSVG from '../../logo.svg';
|
||||
import { fetchSettings } from '../data/actions';
|
||||
import { coachingConsentPageSelector } from '../data/selectors';
|
||||
|
||||
const Logo = ({ src, alt, ...attributes }) => (
|
||||
<>
|
||||
<img src={src} alt={alt} {...attributes} />
|
||||
</>
|
||||
);
|
||||
|
||||
const SuccessMessage = props => (
|
||||
<div className="col-12 col-lg-6 shadow-lg mx-auto mt-4 p-5">
|
||||
<FontAwesomeIcon className="text-success" icon={faCheck} size="5x" />
|
||||
<div className="h3">{props.header}</div>
|
||||
<div>{props.message}</div>
|
||||
<Hyperlink destination={props.continueUrl} className="d-block p-2 my-3 text-center text-white bg-primary rounded">
|
||||
{props.continue}
|
||||
</Hyperlink>
|
||||
</div>
|
||||
);
|
||||
|
||||
const AutoRedirect = (props) => {
|
||||
window.location.href = props.redirectUrl;
|
||||
return <></>;
|
||||
};
|
||||
|
||||
const VIEWS = {
|
||||
NOT_LOADED: 'NOT_LOADED',
|
||||
LOADED: 'LOADED',
|
||||
SUCCESS: 'SUCCESS',
|
||||
SUCCESS_PENDING: 'SUCCESS_PENDING',
|
||||
DECLINED: 'DECLINED',
|
||||
DECLINE_PENDING: 'DECLINE_PENDING',
|
||||
};
|
||||
|
||||
class CoachingConsent extends React.Component {
|
||||
constructor(props, context) {
|
||||
super(props, context);
|
||||
|
||||
// Used to redirect back to the courseware.
|
||||
const nextUrl = this.sanitizeForwardingUrl(getQueryParameters().next);
|
||||
this.state = {
|
||||
redirectUrl: nextUrl || `${getConfig().LMS_BASE_URL}/dashboard/`,
|
||||
formErrors: {},
|
||||
formSubmitted: false,
|
||||
declineSubmitted: false,
|
||||
submissionSuccess: false,
|
||||
};
|
||||
|
||||
this.handleSubmit = this.handleSubmit.bind(this);
|
||||
this.declineCoaching = this.declineCoaching.bind(this);
|
||||
this.patchUsingCoachingConsentForm = this.patchUsingCoachingConsentForm.bind(this);
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.props.fetchSettings();
|
||||
}
|
||||
|
||||
sanitizeForwardingUrl(url) {
|
||||
// Redirect to root of MFE if invalid next param is sent
|
||||
return url && url.startsWith(getConfig().LMS_BASE_URL) ? url : `${getConfig().LMS_BASE_URL}/dashboard/`;
|
||||
}
|
||||
|
||||
async patchUsingCoachingConsentForm(body) {
|
||||
const { userId } = getAuthenticatedUser();
|
||||
const requestUrl = `${getConfig().LMS_BASE_URL}/api/coaching/v1/coaching_consent/${userId}/`;
|
||||
let formErrors = {};
|
||||
const data = await getAuthenticatedHttpClient()
|
||||
.patch(requestUrl, body)
|
||||
.catch((error) => {
|
||||
if (get(error, 'customAttributes.httpErrorResponseData')) {
|
||||
formErrors = JSON.parse(error.customAttributes.httpErrorResponseData);
|
||||
} else {
|
||||
formErrors = { full_name: 'Something went wrong. Please try again.' };
|
||||
}
|
||||
this.setState({
|
||||
submissionSuccess: false,
|
||||
formErrors,
|
||||
formSubmitted: false,
|
||||
});
|
||||
});
|
||||
if (get(data, 'status') === 200) {
|
||||
this.setState({ submissionSuccess: true });
|
||||
}
|
||||
}
|
||||
|
||||
handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
const fullName = e.target.fullName.value;
|
||||
const phoneNumber = e.target.phoneNumber.value;
|
||||
const body = {
|
||||
coaching_consent: true,
|
||||
consent_form_seen: true,
|
||||
phone_number: phoneNumber,
|
||||
full_name: fullName,
|
||||
};
|
||||
this.setState({
|
||||
formErrors: {},
|
||||
formSubmitted: true,
|
||||
declineSubmitted: false,
|
||||
}, () => this.patchUsingCoachingConsentForm(body));
|
||||
}
|
||||
|
||||
declineCoaching(e) {
|
||||
e.preventDefault();
|
||||
const body = {
|
||||
coaching_consent: false,
|
||||
consent_form_seen: true,
|
||||
};
|
||||
this.setState({
|
||||
formErrors: {},
|
||||
formSubmitted: false,
|
||||
declineSubmitted: true,
|
||||
}, () => this.patchUsingCoachingConsentForm(body));
|
||||
}
|
||||
|
||||
renderView(currentView) {
|
||||
switch (currentView) {
|
||||
case VIEWS.NOT_LOADED:
|
||||
return <PageLoading srMessage="" />;
|
||||
case VIEWS.LOADED:
|
||||
return (
|
||||
<CoachingConsentForm
|
||||
onSubmit={this.handleSubmit}
|
||||
declineCoaching={this.declineCoaching}
|
||||
formErrors={this.state.formErrors}
|
||||
formValues={this.props.formValues}
|
||||
redirectUrl={this.state.redirectUrl}
|
||||
profileDataManager={this.props.profileDataManager}
|
||||
/>
|
||||
);
|
||||
case VIEWS.SUCCESS_PENDING:
|
||||
return <PageLoading srMessage="Submitting..." />;
|
||||
case VIEWS.SUCCESS:
|
||||
return (
|
||||
<SuccessMessage
|
||||
continueUrl={this.state.redirectUrl}
|
||||
header={this.props.intl.formatMessage(messages['account.settings.coaching.consent.success.header'])}
|
||||
message={this.props.intl.formatMessage(messages['account.settings.coaching.consent.success.message'])}
|
||||
continue={this.props.intl.formatMessage(messages['account.settings.coaching.consent.success.continue'])}
|
||||
/>
|
||||
);
|
||||
case VIEWS.DECLINE_PENDING:
|
||||
return <PageLoading srMessage="Redirecting..." />;
|
||||
case VIEWS.DECLINED:
|
||||
return <AutoRedirect redirectUrl={this.state.redirectUrl} />;
|
||||
default:
|
||||
return <></>;
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { loaded } = this.props;
|
||||
const formHasErrors = Object.keys(this.state.formErrors).length > 0;
|
||||
let currentView = null;
|
||||
// This amount of logic was making the template very hard to read, so I broke it out into views.
|
||||
if (!loaded) {
|
||||
currentView = VIEWS.NOT_LOADED;
|
||||
} else if (this.state.formSubmitted && !formHasErrors) {
|
||||
if (this.state.submissionSuccess) {
|
||||
currentView = VIEWS.SUCCESS;
|
||||
} else {
|
||||
currentView = VIEWS.SUCCESS_PENDING;
|
||||
}
|
||||
} else if (this.state.declineSubmitted && !formHasErrors) {
|
||||
if (this.state.submissionSuccess) {
|
||||
currentView = VIEWS.DECLINED;
|
||||
} else {
|
||||
currentView = VIEWS.DECLINE_PENDING;
|
||||
}
|
||||
} else {
|
||||
currentView = VIEWS.LOADED;
|
||||
}
|
||||
|
||||
return (
|
||||
<main>
|
||||
<div className="w-100 d-flex justify-content-center align-items-center shadow coaching-header">
|
||||
<Logo
|
||||
className="logo"
|
||||
src={LogoSVG}
|
||||
alt="Logo"
|
||||
/>
|
||||
</div>
|
||||
{this.renderView(currentView)}
|
||||
</main>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Logo.defaultProps = {
|
||||
src: '',
|
||||
alt: '',
|
||||
};
|
||||
|
||||
Logo.propTypes = {
|
||||
src: PropTypes.string,
|
||||
alt: PropTypes.string,
|
||||
};
|
||||
|
||||
SuccessMessage.defaultProps = {
|
||||
header: '',
|
||||
message: '',
|
||||
continueUrl: '',
|
||||
continue: '',
|
||||
};
|
||||
|
||||
SuccessMessage.propTypes = {
|
||||
header: PropTypes.string,
|
||||
message: PropTypes.string,
|
||||
continueUrl: PropTypes.string,
|
||||
continue: PropTypes.string,
|
||||
};
|
||||
|
||||
AutoRedirect.defaultProps = {
|
||||
redirectUrl: '',
|
||||
};
|
||||
|
||||
AutoRedirect.propTypes = {
|
||||
redirectUrl: PropTypes.string,
|
||||
};
|
||||
|
||||
CoachingConsent.defaultProps = {
|
||||
loaded: false,
|
||||
profileDataManager: null,
|
||||
};
|
||||
|
||||
CoachingConsent.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
loaded: PropTypes.bool,
|
||||
formValues: PropTypes.shape({
|
||||
name: PropTypes.string,
|
||||
phone_number: PropTypes.string,
|
||||
coaching: PropTypes.shape({
|
||||
coaching_consent: PropTypes.bool.isRequired,
|
||||
user: PropTypes.number.isRequired,
|
||||
eligible_for_coaching: PropTypes.bool.isRequired,
|
||||
consent_form_seen: PropTypes.bool.isRequired,
|
||||
}),
|
||||
}).isRequired,
|
||||
formErrors: PropTypes.shape({
|
||||
coaching: PropTypes.object,
|
||||
}).isRequired,
|
||||
confirmationValues: PropTypes.shape({
|
||||
coaching: PropTypes.object,
|
||||
name: PropTypes.object,
|
||||
phone_number: PropTypes.object,
|
||||
}).isRequired,
|
||||
fetchSettings: PropTypes.func.isRequired,
|
||||
profileDataManager: PropTypes.string,
|
||||
};
|
||||
|
||||
export default connect(coachingConsentPageSelector, {
|
||||
fetchSettings,
|
||||
})(injectIntl(CoachingConsent));
|
||||
@@ -1,66 +0,0 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const messages = defineMessages({
|
||||
'account.settings.coaching.consent.welcome.header': {
|
||||
id: 'account.settings.coaching.consent.welcome.header',
|
||||
defaultMessage: 'Let’s get started.',
|
||||
description: 'The welcome header for consent form.',
|
||||
},
|
||||
'account.settings.coaching.consent.welcome.subheader': {
|
||||
id: 'account.settings.coaching.consent.welcome.subheader',
|
||||
defaultMessage: "We're here for you from start to finish",
|
||||
description: 'The welcome subheader for consent form.',
|
||||
},
|
||||
'account.settings.coaching.consent.description': {
|
||||
id: 'account.settings.coaching.consent.description',
|
||||
defaultMessage: "MicroBachelors programs include coaching that focuses on your career, education, and how you'll achieve results through one-on-one communication with an experienced professional. If you’re interested, provide the information below and click “Submit,” and our coaching partner will connect with you via email and/or text message to help you move forward. Terms and conditions apply.*",
|
||||
description: 'Text describing what Coaching is.',
|
||||
},
|
||||
'account.settings.coaching.consent.text-messaging.disclaimer': {
|
||||
id: 'account.settings.coaching.consent.text-messaging.disclaimer',
|
||||
defaultMessage: '* Coaching services are included at no additional cost to learners with US phone numbers. Coaching includes recurring text messages. Message and data rates may apply. Text STOP to opt-out.',
|
||||
description: 'Text describing what Coaching is.',
|
||||
},
|
||||
'account.settings.coaching.consent.accept-coaching': {
|
||||
id: 'account.settings.coaching.consent.accept-coaching',
|
||||
defaultMessage: 'Sign up for coaching',
|
||||
description: 'Text to confirm coaching enablement',
|
||||
},
|
||||
'account.settings.coaching.consent.decline-coaching': {
|
||||
id: 'account.settings.coaching.consent.decline-coaching',
|
||||
defaultMessage: 'I prefer not to be contacted with free coaching services',
|
||||
description: 'Text to decline coaching enablement',
|
||||
},
|
||||
'account.settings.coaching.consent.label.name': {
|
||||
id: 'account.settings.coaching.consent.label.name',
|
||||
defaultMessage: 'Please confirm your name',
|
||||
description: 'Label for name input',
|
||||
},
|
||||
'account.settings.coaching.consent.label.phone-number': {
|
||||
id: 'account.settings.coaching.consent.label.phone-number',
|
||||
defaultMessage: 'Enter your mobile number',
|
||||
description: 'Label for mobile phone number input',
|
||||
},
|
||||
'account.settings.coaching.consent.success.header': {
|
||||
id: 'account.settings.coaching.consent.success.header',
|
||||
defaultMessage: 'Success!',
|
||||
description: 'Heading announcing that submission succeeded',
|
||||
},
|
||||
'account.settings.coaching.consent.success.message': {
|
||||
id: 'account.settings.coaching.consent.success.message',
|
||||
defaultMessage: "You're signed up for coaching. You can expect a message via email or SMS in the coming days.",
|
||||
description: 'Text announcing that you have signed up and will receive texts',
|
||||
},
|
||||
'account.settings.coaching.consent.success.continue': {
|
||||
id: 'account.settings.coaching.consent.success.continue',
|
||||
defaultMessage: 'Start my course',
|
||||
description: 'Text that the user will be sent back to the courseware',
|
||||
},
|
||||
'account.settings.coaching.managed.support': {
|
||||
id: 'account.settings.coaching.managed.support',
|
||||
defaultMessage: 'support',
|
||||
description: 'website support',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
@@ -1,131 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
import { injectIntl, intlShape, FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
import { Input, Button, Hyperlink } from '@edx/paragon';
|
||||
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import Alert from '../Alert';
|
||||
import messages from './CoachingConsent.messages';
|
||||
|
||||
const ErrorMessage = props => (
|
||||
<div className="alert-warning mb-2">{props.message}</div>
|
||||
);
|
||||
|
||||
const ManagedProfileAlert = ({ profileDataManager }) => (
|
||||
<Alert className="alert alert-primary" role="alert">
|
||||
<FormattedMessage
|
||||
id="account.settings.coaching.managed.alert"
|
||||
defaultMessage="Your name is managed by {managerTitle}. Contact your administrator for help."
|
||||
description="Alert message informing the user their account data is managed by a third party"
|
||||
values={{
|
||||
managerTitle: <b>{profileDataManager}</b>,
|
||||
}}
|
||||
/>
|
||||
</Alert>
|
||||
);
|
||||
const CoachingForm = props => (
|
||||
<div className="col-12 col-md-6 col-xl-5 mx-auto mt-4 p-5 shadow-lg">
|
||||
<h2 className="h2">
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.welcome.header'])}
|
||||
</h2>
|
||||
<p>{props.intl.formatMessage(messages['account.settings.coaching.consent.description'])}</p>
|
||||
<div>
|
||||
<form onSubmit={props.onSubmit}>
|
||||
<div className="py-3">
|
||||
{!!props.profileDataManager && (
|
||||
<ManagedProfileAlert profileDataManager={props.profileDataManager} />
|
||||
)}
|
||||
<ErrorMessage message={props.formErrors.full_name} />
|
||||
<label className="h6" htmlFor="fullName">
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.label.name'])}
|
||||
</label>
|
||||
<Input
|
||||
type="text"
|
||||
name="full-name"
|
||||
id="fullName"
|
||||
disabled={!!props.profileDataManager}
|
||||
defaultValue={props.formValues.name}
|
||||
/>
|
||||
</div>
|
||||
<div className="py-3">
|
||||
<ErrorMessage message={props.formErrors.phone_number} />
|
||||
<label className="h6" htmlFor="phoneNumber">
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.label.phone-number'])}
|
||||
</label>
|
||||
<Input
|
||||
type="text"
|
||||
name="phone_number"
|
||||
id="phoneNumber"
|
||||
defaultValue={props.formValues.phone_number}
|
||||
/>
|
||||
</div>
|
||||
<div className=" py-3">
|
||||
<p className="small font-italic">
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.text-messaging.disclaimer'])}
|
||||
</p>
|
||||
</div>
|
||||
<ErrorMessage message={props.formErrors.coaching} />
|
||||
<div className="d-flex flex-column align-items-center">
|
||||
<Button variant="outline-primary" className="w-100" type="submit">
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.accept-coaching'])}
|
||||
</Button>
|
||||
</div>
|
||||
<div className="mt-3">
|
||||
<Hyperlink
|
||||
className="mt-3 text-dark btn-link small"
|
||||
destination={props.redirectUrl}
|
||||
onClick={props.declineCoaching}
|
||||
>
|
||||
{props.intl.formatMessage(messages['account.settings.coaching.consent.decline-coaching'])}
|
||||
</Hyperlink>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
CoachingForm.defaultProps = {
|
||||
formErrors: {
|
||||
coaching: '',
|
||||
name: '',
|
||||
phone_number: '',
|
||||
},
|
||||
};
|
||||
|
||||
CoachingForm.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
onSubmit: PropTypes.func.isRequired,
|
||||
declineCoaching: PropTypes.func.isRequired,
|
||||
formValues: PropTypes.shape({
|
||||
name: PropTypes.string,
|
||||
phone_number: PropTypes.string,
|
||||
coaching: PropTypes.shape({
|
||||
coaching_consent: PropTypes.bool.isRequired,
|
||||
user: PropTypes.number.isRequired,
|
||||
eligible_for_coaching: PropTypes.bool.isRequired,
|
||||
consent_form_seen: PropTypes.bool.isRequired,
|
||||
}),
|
||||
}).isRequired,
|
||||
formErrors: PropTypes.shape({
|
||||
coaching: PropTypes.string,
|
||||
full_name: PropTypes.string,
|
||||
phone_number: PropTypes.string,
|
||||
}),
|
||||
redirectUrl: PropTypes.string.isRequired,
|
||||
profileDataManager: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
ErrorMessage.defaultProps = {
|
||||
message: '',
|
||||
};
|
||||
|
||||
ErrorMessage.propTypes = {
|
||||
message: PropTypes.string,
|
||||
};
|
||||
|
||||
ManagedProfileAlert.propTypes = {
|
||||
profileDataManager: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default injectIntl(CoachingForm);
|
||||
@@ -1,98 +0,0 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { ValidationFormGroup, Input } from '@edx/paragon';
|
||||
import messages from './CoachingToggle.messages';
|
||||
import { editableFieldSelector } from '../data/selectors';
|
||||
import { saveSettings, updateDraft, saveMultipleSettings } from '../data/actions';
|
||||
import EditableField from '../EditableField';
|
||||
|
||||
const CoachingToggle = props => (
|
||||
<>
|
||||
<EditableField
|
||||
name="phone_number"
|
||||
type="text"
|
||||
value={props.phone_number}
|
||||
label={props.intl.formatMessage(messages['account.settings.field.phone_number'])}
|
||||
emptyLabel={props.intl.formatMessage(messages['account.settings.field.phone_number.empty'])}
|
||||
onChange={props.updateDraft}
|
||||
onSubmit={() => {
|
||||
const { coaching } = props;
|
||||
if (coaching.coaching_consent === true) {
|
||||
return props.saveMultipleSettings([
|
||||
{
|
||||
formId: 'coaching',
|
||||
commitValues: {
|
||||
...coaching,
|
||||
phone_number: props.phone_number,
|
||||
},
|
||||
},
|
||||
{
|
||||
formId: 'phone_number',
|
||||
commitValues: props.phone_number,
|
||||
},
|
||||
], 'phone_number');
|
||||
}
|
||||
return props.saveSettings('phone_number', props.phone_number);
|
||||
}}
|
||||
/>
|
||||
<ValidationFormGroup
|
||||
for="coachingConsent"
|
||||
helpText={props.intl.formatMessage(messages['account.settings.field.coaching_consent.tooltip'])}
|
||||
invalid={!!props.error}
|
||||
invalidMessage={props.intl.formatMessage(messages['account.settings.field.coaching_consent.error'])}
|
||||
className="custom-control custom-switch"
|
||||
>
|
||||
<Input
|
||||
name={props.name}
|
||||
className="custom-control-input"
|
||||
disabled={props.saveState === 'pending'}
|
||||
type="checkbox"
|
||||
id="coachingConsent"
|
||||
checked={props.coaching.coaching_consent}
|
||||
value={props.coaching.coaching_consent}
|
||||
onChange={async (e) => {
|
||||
const { name } = e.target;
|
||||
// eslint-disable-next-line camelcase
|
||||
const { user, eligible_for_coaching } = props.coaching;
|
||||
const value = {
|
||||
user,
|
||||
eligible_for_coaching,
|
||||
coaching_consent: e.target.checked,
|
||||
};
|
||||
props.saveSettings(name, value);
|
||||
}}
|
||||
/>
|
||||
<label className="custom-control-label" htmlFor="coachingConsent">{props.intl.formatMessage(messages['account.settings.field.coaching_consent'])}</label>
|
||||
</ValidationFormGroup>
|
||||
</>
|
||||
);
|
||||
|
||||
CoachingToggle.defaultProps = {
|
||||
phone_number: '',
|
||||
error: '',
|
||||
saveState: undefined,
|
||||
};
|
||||
|
||||
CoachingToggle.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
error: PropTypes.string,
|
||||
coaching: PropTypes.shape({
|
||||
coaching_consent: PropTypes.bool.isRequired,
|
||||
user: PropTypes.number.isRequired,
|
||||
eligible_for_coaching: PropTypes.bool.isRequired,
|
||||
}).isRequired,
|
||||
saveState: PropTypes.oneOf(['default', 'pending', 'complete', 'error']),
|
||||
saveSettings: PropTypes.func.isRequired,
|
||||
saveMultipleSettings: PropTypes.func.isRequired,
|
||||
updateDraft: PropTypes.func.isRequired,
|
||||
intl: intlShape.isRequired,
|
||||
phone_number: PropTypes.string,
|
||||
};
|
||||
|
||||
export default connect(editableFieldSelector, {
|
||||
saveSettings,
|
||||
updateDraft,
|
||||
saveMultipleSettings,
|
||||
})(injectIntl(CoachingToggle));
|
||||
@@ -1,31 +0,0 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const messages = defineMessages({
|
||||
'account.settings.field.phone_number': {
|
||||
id: 'account.settings.field.phone_number',
|
||||
defaultMessage: 'Phone Number',
|
||||
description: 'The label for a phone numbers setting in the user profile',
|
||||
},
|
||||
'account.settings.field.phone_number.empty': {
|
||||
id: 'account.settings.field.phone_number.empty',
|
||||
defaultMessage: 'Add a phone number',
|
||||
description: 'placeholder for a profiles empty phone number field',
|
||||
},
|
||||
'account.settings.field.coaching_consent': {
|
||||
id: 'account.settings.field.coaching_consent',
|
||||
defaultMessage: 'Coaching consent',
|
||||
description: 'The label for the coaching consent setting in the user profile',
|
||||
},
|
||||
'account.settings.field.coaching_consent.tooltip': {
|
||||
id: 'account.settings.field.coaching_consent.tooltip',
|
||||
defaultMessage: 'MicroBachelors programs include text message based coaching that helps you pair educational experiences with your career goals through one-on-one advice. Coaching services are included at no additional cost, and are available to learners with U.S. mobile phone numbers. Standard messaging rates apply. Text ‘STOP’ at anytime to opt-out of messages.',
|
||||
description: 'A tooltip explaining what coaching is and who it is for',
|
||||
},
|
||||
'account.settings.field.coaching_consent.error': {
|
||||
id: 'account.settings.field.coaching_consent.error',
|
||||
defaultMessage: 'A valid US phone number is required to opt into coaching',
|
||||
description: 'An error message that displays when a user attempts to consent to coaching without first providing a phone number in their profile',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
@@ -1,51 +0,0 @@
|
||||
import { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import get from 'lodash.get';
|
||||
|
||||
/**
|
||||
* get all settings related to the coaching plugin. Settings used
|
||||
* by Microbachelors students.
|
||||
* @param {Number} userId users are identified in the api by LMS id
|
||||
*/
|
||||
export async function getCoachingPreferences(userId) {
|
||||
let data = {};
|
||||
try {
|
||||
({ data } = await getAuthenticatedHttpClient()
|
||||
.get(`${getConfig().LMS_BASE_URL}/api/coaching/v1/users/${userId}/`));
|
||||
} catch (error) {
|
||||
// If a user isn't active the API call will fail with a lack of credentials.
|
||||
data = {
|
||||
coaching_consent: false,
|
||||
user: userId,
|
||||
eligible_for_coaching: false,
|
||||
consent_form_seen: false,
|
||||
};
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* patch all of the settings related to coaching.
|
||||
* @param {Number} userId users are identified in the api by LMS id
|
||||
* @param {Object} commitValues { coaching }
|
||||
*/
|
||||
export async function patchCoachingPreferences(userId, commitValues) {
|
||||
const requestUrl = `${getConfig().LMS_BASE_URL}/api/coaching/v1/users/${userId}/`;
|
||||
const { coaching } = commitValues;
|
||||
coaching.user = userId;
|
||||
|
||||
await getAuthenticatedHttpClient()
|
||||
.patch(requestUrl, coaching)
|
||||
.catch((error) => {
|
||||
const apiError = Object.create(error);
|
||||
apiError.fieldErrors = JSON.parse(error.customAttributes.httpErrorResponseData);
|
||||
if (get(apiError, 'fieldErrors.phone_number')) {
|
||||
// eslint-disable-next-line prefer-destructuring
|
||||
apiError.fieldErrors.coaching = apiError.fieldErrors.phone_number[0];
|
||||
delete apiError.fieldErrors.phone_number;
|
||||
}
|
||||
throw apiError;
|
||||
});
|
||||
return commitValues;
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import renderer from 'react-test-renderer';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
|
||||
import CoachingConsent from '../CoachingConsent';
|
||||
import * as selectors from '../../data/selectors';
|
||||
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
|
||||
const IntlCoachingConsent = injectIntl(CoachingConsent);
|
||||
|
||||
jest.mock('../../data/selectors', () => jest.fn().mockImplementation(() => ({ coachingConsentPageSelector: () => ({}) })));
|
||||
|
||||
const mockStore = configureStore();
|
||||
|
||||
describe('CoachingConsent', () => {
|
||||
let props = {};
|
||||
let store = {};
|
||||
selectors.mockClear();
|
||||
|
||||
const reduxWrapper = children => (
|
||||
<IntlProvider locale="en">
|
||||
<Provider store={store}>{children}</Provider>
|
||||
</IntlProvider>
|
||||
);
|
||||
|
||||
beforeEach(() => {
|
||||
store = mockStore();
|
||||
props = {
|
||||
fetchSettings: jest.fn(),
|
||||
loaded: true,
|
||||
saveState: undefined,
|
||||
formValues: {
|
||||
name: 'edx edx',
|
||||
phone_number: '1234567890',
|
||||
coaching: {
|
||||
coaching_consent: true,
|
||||
consent_form_seen: false,
|
||||
eligible_for_coaching: true,
|
||||
user: 1,
|
||||
},
|
||||
},
|
||||
formErrors: {},
|
||||
confirmationValues: {},
|
||||
profileDataManager: '',
|
||||
intl: {},
|
||||
};
|
||||
auth.getAuthenticatedHttpClient = jest.fn(() => ({
|
||||
patch: async () => ({
|
||||
data: { status: 200 },
|
||||
catch: () => {},
|
||||
}),
|
||||
}));
|
||||
auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3 }));
|
||||
});
|
||||
|
||||
it('should render', () => {
|
||||
const wrapper = renderer.create(reduxWrapper(<IntlCoachingConsent {...props} />)).toJSON();
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('disables name field on enterprise user', () => {
|
||||
props = {
|
||||
...props,
|
||||
profileDataManager: 'test person',
|
||||
};
|
||||
const wrapper = renderer.create(reduxWrapper(<IntlCoachingConsent {...props} />)).toJSON();
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('display completed box when successfully submitted', async () => {
|
||||
const fakeEvent = {
|
||||
preventDefault: () => {},
|
||||
target: {
|
||||
fullName: { value: 'edx edx' },
|
||||
phoneNumber: { value: '9783028731' },
|
||||
},
|
||||
};
|
||||
const wrapper = renderer.create(
|
||||
reduxWrapper(<IntlCoachingConsent {...props} />),
|
||||
{
|
||||
// bypass the forward-ref. we don't care about focus for this one test
|
||||
createNodeMock: (element) => {
|
||||
if (element.type === 'button') {
|
||||
// mock a focus function
|
||||
return {
|
||||
focus: async () => wrapper.root.findByType('form').props.onSubmit(fakeEvent),
|
||||
};
|
||||
}
|
||||
return null;
|
||||
},
|
||||
},
|
||||
);
|
||||
const form = wrapper.root.findByType('form');
|
||||
await act(async () => { await form.props.onSubmit(fakeEvent); });
|
||||
expect(wrapper.toJSON()).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
@@ -1,278 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`CoachingConsent disables name field on enterprise user 1`] = `
|
||||
<main>
|
||||
<div
|
||||
className="w-100 d-flex justify-content-center align-items-center shadow coaching-header"
|
||||
>
|
||||
<img
|
||||
alt="Logo"
|
||||
className="logo"
|
||||
src="icon/mock/path"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="col-12 col-md-6 col-xl-5 mx-auto mt-4 p-5 shadow-lg"
|
||||
>
|
||||
<h2
|
||||
className="h2"
|
||||
>
|
||||
Let’s get started.
|
||||
</h2>
|
||||
<p>
|
||||
MicroBachelors programs include coaching that focuses on your career, education, and how you'll achieve results through one-on-one communication with an experienced professional. If you’re interested, provide the information below and click “Submit,” and our coaching partner will connect with you via email and/or text message to help you move forward. Terms and conditions apply.*
|
||||
</p>
|
||||
<div>
|
||||
<form
|
||||
onSubmit={[Function]}
|
||||
>
|
||||
<div
|
||||
className="py-3"
|
||||
>
|
||||
<div
|
||||
className="alert d-flex align-items-start alert alert-primary"
|
||||
>
|
||||
<div />
|
||||
<div>
|
||||
<span>
|
||||
Your name is managed by
|
||||
<b>
|
||||
test person
|
||||
</b>
|
||||
. Contact your administrator for help.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<label
|
||||
className="h6"
|
||||
htmlFor="fullName"
|
||||
>
|
||||
Please confirm your name
|
||||
</label>
|
||||
<input
|
||||
className="form-control"
|
||||
defaultValue="edx edx"
|
||||
disabled={true}
|
||||
id="fullName"
|
||||
name="full-name"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="py-3"
|
||||
>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<label
|
||||
className="h6"
|
||||
htmlFor="phoneNumber"
|
||||
>
|
||||
Enter your mobile number
|
||||
</label>
|
||||
<input
|
||||
className="form-control"
|
||||
defaultValue="1234567890"
|
||||
id="phoneNumber"
|
||||
name="phone_number"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className=" py-3"
|
||||
>
|
||||
<p
|
||||
className="small font-italic"
|
||||
>
|
||||
* Coaching services are included at no additional cost to learners with US phone numbers. Coaching includes recurring text messages. Message and data rates may apply. Text STOP to opt-out.
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<div
|
||||
className="d-flex flex-column align-items-center"
|
||||
>
|
||||
<button
|
||||
className="w-100 btn btn-outline-primary"
|
||||
disabled={false}
|
||||
type="submit"
|
||||
>
|
||||
Sign up for coaching
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="mt-3"
|
||||
>
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link mt-3 text-dark btn-link small"
|
||||
href="http://localhost:18000/dashboard/"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
I prefer not to be contacted with free coaching services
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`CoachingConsent display completed box when successfully submitted 1`] = `
|
||||
<main>
|
||||
<div
|
||||
className="w-100 d-flex justify-content-center align-items-center shadow coaching-header"
|
||||
>
|
||||
<img
|
||||
alt="Logo"
|
||||
className="logo"
|
||||
src="icon/mock/path"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<div
|
||||
className="d-flex justify-content-center align-items-center flex-column"
|
||||
style={
|
||||
Object {
|
||||
"height": "50vh",
|
||||
}
|
||||
}
|
||||
>
|
||||
<div
|
||||
className="spinner-border text-primary"
|
||||
role="status"
|
||||
>
|
||||
<span
|
||||
className="sr-only"
|
||||
>
|
||||
Submitting...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
|
||||
exports[`CoachingConsent should render 1`] = `
|
||||
<main>
|
||||
<div
|
||||
className="w-100 d-flex justify-content-center align-items-center shadow coaching-header"
|
||||
>
|
||||
<img
|
||||
alt="Logo"
|
||||
className="logo"
|
||||
src="icon/mock/path"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="col-12 col-md-6 col-xl-5 mx-auto mt-4 p-5 shadow-lg"
|
||||
>
|
||||
<h2
|
||||
className="h2"
|
||||
>
|
||||
Let’s get started.
|
||||
</h2>
|
||||
<p>
|
||||
MicroBachelors programs include coaching that focuses on your career, education, and how you'll achieve results through one-on-one communication with an experienced professional. If you’re interested, provide the information below and click “Submit,” and our coaching partner will connect with you via email and/or text message to help you move forward. Terms and conditions apply.*
|
||||
</p>
|
||||
<div>
|
||||
<form
|
||||
onSubmit={[Function]}
|
||||
>
|
||||
<div
|
||||
className="py-3"
|
||||
>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<label
|
||||
className="h6"
|
||||
htmlFor="fullName"
|
||||
>
|
||||
Please confirm your name
|
||||
</label>
|
||||
<input
|
||||
className="form-control"
|
||||
defaultValue="edx edx"
|
||||
disabled={false}
|
||||
id="fullName"
|
||||
name="full-name"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="py-3"
|
||||
>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<label
|
||||
className="h6"
|
||||
htmlFor="phoneNumber"
|
||||
>
|
||||
Enter your mobile number
|
||||
</label>
|
||||
<input
|
||||
className="form-control"
|
||||
defaultValue="1234567890"
|
||||
id="phoneNumber"
|
||||
name="phone_number"
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className=" py-3"
|
||||
>
|
||||
<p
|
||||
className="small font-italic"
|
||||
>
|
||||
* Coaching services are included at no additional cost to learners with US phone numbers. Coaching includes recurring text messages. Message and data rates may apply. Text STOP to opt-out.
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
className="alert-warning mb-2"
|
||||
>
|
||||
|
||||
</div>
|
||||
<div
|
||||
className="d-flex flex-column align-items-center"
|
||||
>
|
||||
<button
|
||||
className="w-100 btn btn-outline-primary"
|
||||
disabled={false}
|
||||
type="submit"
|
||||
>
|
||||
Sign up for coaching
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
className="mt-3"
|
||||
>
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link mt-3 text-dark btn-link small"
|
||||
href="http://localhost:18000/dashboard/"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
I prefer not to be contacted with free coaching services
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
`;
|
||||
@@ -10,6 +10,11 @@ export const YEAR_OF_BIRTH_OPTIONS = (() => {
|
||||
return years.reverse();
|
||||
})();
|
||||
|
||||
export const COPPA_COMPLIANCE_YEAR = (() => {
|
||||
const currentYear = new Date().getFullYear();
|
||||
return currentYear - 13;
|
||||
})();
|
||||
|
||||
export const EDUCATION_LEVELS = [
|
||||
'',
|
||||
'p',
|
||||
|
||||
@@ -41,7 +41,7 @@ export const defaultState = {
|
||||
verifiedNameHistory: {},
|
||||
};
|
||||
|
||||
const reducer = (state = defaultState, action) => {
|
||||
const reducer = (state = defaultState, action = {}) => {
|
||||
let dispatcherIsOpenForm;
|
||||
|
||||
switch (action.type) {
|
||||
|
||||
@@ -106,11 +106,6 @@ const isEditingSelector = createSelector(
|
||||
(name, accountSettings) => accountSettings.openFormId === name,
|
||||
);
|
||||
|
||||
const confirmationValuesSelector = createSelector(
|
||||
accountSettingsSelector,
|
||||
accountSettings => accountSettings.confirmationValues,
|
||||
);
|
||||
|
||||
const errorSelector = createSelector(
|
||||
accountSettingsSelector,
|
||||
accountSettings => accountSettings.errors,
|
||||
@@ -179,7 +174,7 @@ const formValuesSelector = createSelector(
|
||||
|
||||
const transformTimeZonesToOptions = timeZoneArr => timeZoneArr
|
||||
.map(({ time_zone, description }) => ({ // eslint-disable-line camelcase
|
||||
value: time_zone, label: description,
|
||||
value: time_zone, label: description, // eslint-disable-line camelcase
|
||||
}));
|
||||
|
||||
const timeZonesSelector = createSelector(
|
||||
@@ -289,35 +284,6 @@ export const certPreferenceSelector = createSelector(
|
||||
}),
|
||||
);
|
||||
|
||||
export const coachingConsentPageSelector = createSelector(
|
||||
accountSettingsSelector,
|
||||
formValuesSelector,
|
||||
activeAccountSelector,
|
||||
profileDataManagerSelector,
|
||||
saveStateSelector,
|
||||
confirmationValuesSelector,
|
||||
errorSelector,
|
||||
(
|
||||
accountSettings,
|
||||
formValues,
|
||||
activeAccount,
|
||||
profileDataManager,
|
||||
saveState,
|
||||
confirmationValues,
|
||||
errors,
|
||||
) => ({
|
||||
loading: accountSettings.loading,
|
||||
loaded: accountSettings.loaded,
|
||||
loadingError: accountSettings.loadingError,
|
||||
isActive: activeAccount,
|
||||
profileDataManager,
|
||||
formValues,
|
||||
saveState,
|
||||
confirmationValues,
|
||||
formErrors: errors,
|
||||
}),
|
||||
);
|
||||
|
||||
export const demographicsSectionSelector = createSelector(
|
||||
formValuesSelector,
|
||||
draftsSelector,
|
||||
|
||||
@@ -8,7 +8,6 @@ import isEmpty from 'lodash.isempty';
|
||||
import { handleRequestError, unpackFieldErrors } from './utils';
|
||||
import { getThirdPartyAuthProviders } from '../third-party-auth';
|
||||
import { postVerifiedNameConfig } from '../certificate-preference/data/service';
|
||||
import { getCoachingPreferences, patchCoachingPreferences } from '../coaching/data/service';
|
||||
import { getDemographics, getDemographicsOptions, patchDemographics } from '../demographics/data/service';
|
||||
import { DEMOGRAPHICS_FIELDS } from '../demographics/data/utils';
|
||||
|
||||
@@ -214,7 +213,7 @@ export async function postVerifiedName(data) {
|
||||
|
||||
/**
|
||||
* A single function to GET everything considered a setting.
|
||||
* Currently encapsulates Account, Preferences, Coaching, ThirdPartyAuth, and Demographics
|
||||
* Currently encapsulates Account, Preferences, ThirdPartyAuth, and Demographics
|
||||
*/
|
||||
export async function getSettings(username, userRoles, userId) {
|
||||
const [
|
||||
@@ -223,7 +222,6 @@ export async function getSettings(username, userRoles, userId) {
|
||||
thirdPartyAuthProviders,
|
||||
profileDataManager,
|
||||
timeZones,
|
||||
coaching,
|
||||
shouldDisplayDemographicsQuestionsResponse,
|
||||
demographics,
|
||||
demographicsOptions,
|
||||
@@ -233,7 +231,6 @@ export async function getSettings(username, userRoles, userId) {
|
||||
getThirdPartyAuthProviders(),
|
||||
getProfileDataManager(username, userRoles),
|
||||
getTimeZones(),
|
||||
getConfig().COACHING_ENABLED && getCoachingPreferences(userId),
|
||||
getConfig().ENABLE_DEMOGRAPHICS_COLLECTION && shouldDisplayDemographicsQuestions(),
|
||||
getConfig().ENABLE_DEMOGRAPHICS_COLLECTION && getDemographics(userId),
|
||||
getConfig().ENABLE_DEMOGRAPHICS_COLLECTION && getDemographicsOptions(),
|
||||
@@ -245,7 +242,6 @@ export async function getSettings(username, userRoles, userId) {
|
||||
thirdPartyAuthProviders,
|
||||
profileDataManager,
|
||||
timeZones,
|
||||
coaching,
|
||||
shouldDisplayDemographicsSection: shouldDisplayDemographicsQuestionsResponse,
|
||||
...demographics,
|
||||
demographicsOptions,
|
||||
@@ -254,26 +250,23 @@ export async function getSettings(username, userRoles, userId) {
|
||||
|
||||
/**
|
||||
* A single function to PATCH everything considered a setting.
|
||||
* Currently encapsulates Account, Preferences, coaching and ThirdPartyAuth
|
||||
* Currently encapsulates Account, Preferences, ThirdPartyAuth
|
||||
*/
|
||||
export async function patchSettings(username, commitValues, userId) {
|
||||
// Note: time_zone exists in the return value from user/v1/accounts
|
||||
// but it is always null and won't update. It also exists in
|
||||
// user/v1/preferences where it does update. This is the one we use.
|
||||
const preferenceKeys = ['time_zone'];
|
||||
const coachingKeys = ['coaching'];
|
||||
const demographicsKeys = DEMOGRAPHICS_FIELDS;
|
||||
const certificateKeys = ['useVerifiedNameForCerts'];
|
||||
const isDemographicsKey = (value, key) => key.includes('demographics');
|
||||
const accountCommitValues = omit(
|
||||
commitValues,
|
||||
preferenceKeys,
|
||||
coachingKeys,
|
||||
demographicsKeys,
|
||||
certificateKeys,
|
||||
);
|
||||
const preferenceCommitValues = pick(commitValues, preferenceKeys);
|
||||
const coachingCommitValues = pick(commitValues, coachingKeys);
|
||||
const demographicsCommitValues = pickBy(commitValues, isDemographicsKey);
|
||||
const certCommitValues = pick(commitValues, certificateKeys);
|
||||
const patchRequests = [];
|
||||
@@ -284,9 +277,6 @@ export async function patchSettings(username, commitValues, userId) {
|
||||
if (!isEmpty(preferenceCommitValues)) {
|
||||
patchRequests.push(patchPreferences(username, preferenceCommitValues));
|
||||
}
|
||||
if (!isEmpty(coachingCommitValues)) {
|
||||
patchRequests.push(patchCoachingPreferences(userId, coachingCommitValues));
|
||||
}
|
||||
if (!isEmpty(demographicsCommitValues)) {
|
||||
patchRequests.push(patchDemographics(userId, demographicsCommitValues));
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { put } from 'redux-saga/effects';
|
||||
import { logError } from '@edx/frontend-platform/logging';
|
||||
import { history } from '@edx/frontend-platform';
|
||||
|
||||
export default function* handleFailure(error, failureAction = null, failureRedirectPath = null) {
|
||||
export default function* handleFailure(error, navigate, failureAction = null, failureRedirectPath = null) {
|
||||
if (error.fieldErrors && failureAction !== null) {
|
||||
yield put(failureAction({ fieldErrors: error.fieldErrors }));
|
||||
}
|
||||
@@ -11,6 +10,6 @@ export default function* handleFailure(error, failureAction = null, failureRedir
|
||||
yield put(failureAction(error.message));
|
||||
}
|
||||
if (failureRedirectPath !== null) {
|
||||
history.push(failureRedirectPath);
|
||||
navigate(failureRedirectPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,12 @@ const BeforeProceedingBanner = (props) => {
|
||||
defaultMessage="Before proceeding, please {actionLink}."
|
||||
description="Error that appears if you are trying to delete your account, but something about your account needs attention first. The actionLink will be instructions, such as 'unlink your Facebook account'."
|
||||
values={{
|
||||
actionLink: (
|
||||
actionLink: supportArticleUrl ? (
|
||||
<Hyperlink destination={supportArticleUrl}>
|
||||
{intl.formatMessage(messages[instructionMessageId])}
|
||||
</Hyperlink>
|
||||
) : (
|
||||
intl.formatMessage(messages[instructionMessageId])
|
||||
),
|
||||
siteName: getConfig().SITE_NAME,
|
||||
}}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import renderer from 'react-test-renderer';
|
||||
import { IntlProvider, injectIntl, createIntl } from '@edx/frontend-platform/i18n';
|
||||
|
||||
ReactDOM.createPortal = node => node;
|
||||
|
||||
import BeforeProceedingBanner from './BeforeProceedingBanner'; // eslint-disable-line import/first
|
||||
|
||||
const IntlBeforeProceedingBanner = injectIntl(BeforeProceedingBanner);
|
||||
|
||||
describe('BeforeProceedingBanner', () => {
|
||||
it('should match the snapshot if SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT does not have a support link', () => {
|
||||
const props = {
|
||||
instructionMessageId: 'account.settings.delete.account.please.unlink',
|
||||
intl: createIntl({ locale: 'en' }),
|
||||
supportArticleUrl: '',
|
||||
};
|
||||
const tree = renderer
|
||||
.create((
|
||||
<IntlProvider locale="en">
|
||||
<IntlBeforeProceedingBanner
|
||||
{...props}
|
||||
/>
|
||||
</IntlProvider>
|
||||
))
|
||||
.toJSON();
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should match the snapshot when SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT has a support link', () => {
|
||||
const props = {
|
||||
instructionMessageId: 'account.settings.delete.account.please.unlink',
|
||||
intl: createIntl({ locale: 'en' }),
|
||||
supportArticleUrl: 'http://test-support.edx',
|
||||
};
|
||||
const tree = renderer
|
||||
.create((
|
||||
<IntlProvider locale="en">
|
||||
<IntlBeforeProceedingBanner
|
||||
{...props}
|
||||
/>
|
||||
</IntlProvider>
|
||||
))
|
||||
.toJSON();
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
@@ -2,12 +2,12 @@ import React, { Component } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import {
|
||||
Button, Input, Modal, ValidationFormGroup,
|
||||
AlertModal,
|
||||
Button, Input, ValidationFormGroup, ActionRow,
|
||||
} from '@edx/paragon';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { faExclamationCircle, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import messages from './messages';
|
||||
import Alert from '../Alert';
|
||||
@@ -74,59 +74,58 @@ export class ConfirmationModal extends Component {
|
||||
: 'account.settings.delete.account.modal.text.2';
|
||||
|
||||
return (
|
||||
<Modal
|
||||
open={open}
|
||||
<AlertModal
|
||||
isOpen={open}
|
||||
title={intl.formatMessage(messages['account.settings.delete.account.modal.header'])}
|
||||
body={(
|
||||
<div>
|
||||
{this.renderError()}
|
||||
<Alert
|
||||
className="alert-warning mt-n2"
|
||||
icon={<FontAwesomeIcon className="mr-2" icon={faExclamationTriangle} />}
|
||||
>
|
||||
<h6>
|
||||
{intl.formatMessage(
|
||||
messages['account.settings.delete.account.modal.text.1'],
|
||||
{ siteName: getConfig().SITE_NAME },
|
||||
)}
|
||||
</h6>
|
||||
<p>
|
||||
{intl.formatMessage(
|
||||
messages[deleteAccountModalText2MessageKey],
|
||||
{ siteName: getConfig().SITE_NAME },
|
||||
)}
|
||||
</p>
|
||||
<p>
|
||||
<PrintingInstructions />
|
||||
</p>
|
||||
</Alert>
|
||||
<ValidationFormGroup
|
||||
for={passwordFieldId}
|
||||
invalid={errorType !== null}
|
||||
invalidMessage={intl.formatMessage(invalidMessage)}
|
||||
>
|
||||
<label className="d-block" htmlFor={passwordFieldId}>
|
||||
{intl.formatMessage(messages['account.settings.delete.account.modal.enter.password'])}
|
||||
</label>
|
||||
<Input
|
||||
name="password"
|
||||
id={passwordFieldId}
|
||||
type="password"
|
||||
value={password}
|
||||
onChange={onChange}
|
||||
/>
|
||||
</ValidationFormGroup>
|
||||
</div>
|
||||
)}
|
||||
buttons={[
|
||||
<Button variant="danger" onClick={onSubmit}>
|
||||
{intl.formatMessage(messages['account.settings.delete.account.modal.confirm.delete'])}
|
||||
</Button>,
|
||||
]}
|
||||
closeText={intl.formatMessage(messages['account.settings.delete.account.modal.confirm.cancel'])}
|
||||
renderHeaderCloseButton={false}
|
||||
onClose={onCancel}
|
||||
/>
|
||||
footerNode={(
|
||||
<ActionRow>
|
||||
<Button variant="link" onClick={onCancel}>Cancel</Button>
|
||||
<Button variant="danger" onClick={onSubmit}>Yes, Delete</Button>
|
||||
</ActionRow>
|
||||
)}
|
||||
>
|
||||
<div className="p-3">
|
||||
{this.renderError()}
|
||||
<Alert
|
||||
className="alert-warning mt-n2"
|
||||
icon={<FontAwesomeIcon className="mr-2" icon={faExclamationTriangle} />}
|
||||
>
|
||||
<h6>
|
||||
{intl.formatMessage(
|
||||
messages['account.settings.delete.account.modal.text.1'],
|
||||
{ siteName: getConfig().SITE_NAME },
|
||||
)}
|
||||
</h6>
|
||||
<p>
|
||||
{intl.formatMessage(
|
||||
messages[deleteAccountModalText2MessageKey],
|
||||
{ siteName: getConfig().SITE_NAME },
|
||||
)}
|
||||
</p>
|
||||
<p>
|
||||
<PrintingInstructions />
|
||||
</p>
|
||||
</Alert>
|
||||
<ValidationFormGroup
|
||||
for={passwordFieldId}
|
||||
invalid={errorType !== null}
|
||||
invalidMessage={intl.formatMessage(invalidMessage)}
|
||||
>
|
||||
<label className="d-block" htmlFor={passwordFieldId}>
|
||||
{intl.formatMessage(messages['account.settings.delete.account.modal.enter.password'])}
|
||||
</label>
|
||||
<Input
|
||||
name="password"
|
||||
id={passwordFieldId}
|
||||
type="password"
|
||||
value={password}
|
||||
onChange={onChange}
|
||||
/>
|
||||
</ValidationFormGroup>
|
||||
</div>
|
||||
|
||||
</AlertModal>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ export class DeleteAccount extends React.Component {
|
||||
hasLinkedTPA, isVerifiedAccount, status, errorType, intl,
|
||||
} = this.props;
|
||||
const canDelete = isVerifiedAccount && !hasLinkedTPA;
|
||||
const supportArticleUrl = process.env.SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT;
|
||||
|
||||
// TODO: We lack a good way of providing custom language for a particular site. This is a hack
|
||||
// to allow edx.org to fulfill its business requirements.
|
||||
@@ -92,8 +93,10 @@ export class DeleteAccount extends React.Component {
|
||||
<PrintingInstructions />
|
||||
</p>
|
||||
<p className="text-danger h6">
|
||||
{intl.formatMessage(messages['account.settings.delete.account.text.warning'],
|
||||
{ siteName: getConfig().SITE_NAME })}
|
||||
{intl.formatMessage(
|
||||
messages['account.settings.delete.account.text.warning'],
|
||||
{ siteName: getConfig().SITE_NAME },
|
||||
)}
|
||||
</p>
|
||||
<p>
|
||||
<Hyperlink destination="https://support.edx.org/hc/en-us/sections/115004139268-Manage-Your-Account-Settings">
|
||||
@@ -120,7 +123,7 @@ export class DeleteAccount extends React.Component {
|
||||
{hasLinkedTPA ? (
|
||||
<BeforeProceedingBanner
|
||||
instructionMessageId="account.settings.delete.account.please.unlink"
|
||||
supportArticleUrl="https://support.edx.org/hc/en-us/articles/207206067"
|
||||
supportArticleUrl={supportArticleUrl}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
/* eslint-disable react/jsx-no-useless-fragment */
|
||||
import React from 'react';
|
||||
import renderer from 'react-test-renderer';
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
|
||||
// Testing the modals separately, they just clutter up the snapshots if included here.
|
||||
jest.mock('./ConfirmationModal');
|
||||
jest.mock('./SuccessModal');
|
||||
jest.mock('./ConfirmationModal', () => function ConfirmationModalMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('./SuccessModal', () => function SuccessModalMock() {
|
||||
return <></>;
|
||||
});
|
||||
|
||||
import { DeleteAccount } from './DeleteAccount'; // eslint-disable-line import/first
|
||||
|
||||
@@ -37,6 +42,7 @@ describe('DeleteAccount', () => {
|
||||
</IntlProvider>
|
||||
))
|
||||
.toJSON();
|
||||
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { Modal } from '@edx/paragon';
|
||||
import { ModalLayer, ModalCloseButton } from '@edx/paragon';
|
||||
|
||||
import messages from './messages';
|
||||
|
||||
export const SuccessModal = (props) => {
|
||||
const { status, intl, onClose } = props;
|
||||
return (
|
||||
<Modal
|
||||
open={status === 'deleted'}
|
||||
title={intl.formatMessage(messages['account.settings.delete.account.modal.after.header'])}
|
||||
body={(
|
||||
<div>
|
||||
|
||||
<ModalLayer isOpen={status === 'deleted'} onClose={onClose}>
|
||||
<div className="mw-sm p-5 bg-white mx-auto my-3">
|
||||
<h3>
|
||||
{intl.formatMessage(messages['account.settings.delete.account.modal.after.header'])}
|
||||
</h3>
|
||||
<div className="p-3">
|
||||
<p className="h6">
|
||||
{intl.formatMessage(messages['account.settings.delete.account.modal.after.text'])}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
closeText={intl.formatMessage(messages['account.settings.delete.account.modal.after.button'])}
|
||||
renderHeaderCloseButton={false}
|
||||
onClose={onClose}
|
||||
/>
|
||||
<p>
|
||||
<ModalCloseButton className="float-right" variant="link">Close</ModalCloseButton>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</ModalLayer>
|
||||
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`BeforeProceedingBanner should match the snapshot if SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT does not have a support link 1`] = `
|
||||
<div
|
||||
className="alert d-flex align-items-start alert-warning mt-n2"
|
||||
>
|
||||
<div>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
className="svg-inline--fa fa-exclamation-triangle fa-w-18 mr-2"
|
||||
data-icon="exclamation-triangle"
|
||||
data-prefix="fas"
|
||||
focusable="false"
|
||||
role="img"
|
||||
style={Object {}}
|
||||
viewBox="0 0 576 512"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
|
||||
fill="currentColor"
|
||||
style={Object {}}
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
Before proceeding, please unlink all social media accounts.
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`BeforeProceedingBanner should match the snapshot when SUPPORT_URL_TO_UNLINK_SOCIAL_MEDIA_ACCOUNT has a support link 1`] = `
|
||||
<div
|
||||
className="alert d-flex align-items-start alert-warning mt-n2"
|
||||
>
|
||||
<div>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
className="svg-inline--fa fa-exclamation-triangle fa-w-18 mr-2"
|
||||
data-icon="exclamation-triangle"
|
||||
data-prefix="fas"
|
||||
focusable="false"
|
||||
role="img"
|
||||
style={Object {}}
|
||||
viewBox="0 0 576 512"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
|
||||
fill="currentColor"
|
||||
style={Object {}}
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
Before proceeding, please
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link"
|
||||
href="http://test-support.edx"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
unlink all social media accounts
|
||||
</a>
|
||||
.
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
@@ -1,224 +1,67 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`ConfirmationModal should match default closed confirmation modal snapshot 1`] = `
|
||||
Array [
|
||||
<div
|
||||
className="fade"
|
||||
role="presentation"
|
||||
/>,
|
||||
<div
|
||||
className="modal fade"
|
||||
role="presentation"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id1"
|
||||
aria-modal={true}
|
||||
className=""
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id1"
|
||||
>
|
||||
Are you sure?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="alert d-flex align-items-start alert-warning mt-n2"
|
||||
>
|
||||
<div>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
className="svg-inline--fa fa-exclamation-triangle fa-w-18 mr-2"
|
||||
data-icon="exclamation-triangle"
|
||||
data-prefix="fas"
|
||||
focusable="false"
|
||||
role="img"
|
||||
style={Object {}}
|
||||
viewBox="0 0 576 512"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
|
||||
fill="currentColor"
|
||||
style={Object {}}
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h6>
|
||||
You have selected "Delete My Account". Deletion of your account and personal data is permanent and cannot be undone. localhost will not be able to recover your account or the data that is deleted.
|
||||
</h6>
|
||||
<p>
|
||||
If you proceed, you will be unable to use this account to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="form-group"
|
||||
>
|
||||
<label
|
||||
className="d-block"
|
||||
htmlFor="passwordFieldId"
|
||||
>
|
||||
If you still wish to continue and delete your account, please enter your account password:
|
||||
</label>
|
||||
<input
|
||||
aria-describedby=""
|
||||
className="form-control"
|
||||
id="passwordFieldId"
|
||||
name="password"
|
||||
onChange={[MockFunction]}
|
||||
type="password"
|
||||
value="fluffy bunnies"
|
||||
/>
|
||||
<strong
|
||||
className="invalid-feedback"
|
||||
id="passwordFieldId-invalid-feedback"
|
||||
>
|
||||
Unable to delete account
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
<button
|
||||
className="btn btn-danger"
|
||||
disabled={false}
|
||||
onClick={[MockFunction]}
|
||||
type="button"
|
||||
>
|
||||
Yes, Delete
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
]
|
||||
`;
|
||||
exports[`ConfirmationModal should match default closed confirmation modal snapshot 1`] = `null`;
|
||||
|
||||
exports[`ConfirmationModal should match empty password confirmation modal snapshot 1`] = `
|
||||
Array [
|
||||
<div
|
||||
className="modal-backdrop show"
|
||||
role="presentation"
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
/>,
|
||||
<div
|
||||
className="modal show d-block"
|
||||
role="presentation"
|
||||
className="pgn__modal-layer"
|
||||
data-focus-lock-disabled={false}
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseDown={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onTouchStart={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id3"
|
||||
aria-modal={true}
|
||||
className="modal-dialog"
|
||||
role="dialog"
|
||||
className="pgn__modal-content-container"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled={false}
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseDown={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onTouchStart={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
aria-label="Are you sure?"
|
||||
className="pgn__modal pgn__modal-md pgn__modal-default pgn__alert-modal"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
className="pgn__modal-header"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
<h2
|
||||
className="pgn__modal-title"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id3"
|
||||
Are you sure?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="pgn__modal-body pgn__modal-body-scroll-top pgn__modal-body-scroll-bottom"
|
||||
>
|
||||
<div />
|
||||
<div
|
||||
className="pgn__modal-body-content"
|
||||
>
|
||||
<div
|
||||
className="p-3"
|
||||
>
|
||||
Are you sure?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="alert d-flex align-items-start alert-danger mt-n2"
|
||||
>
|
||||
@@ -282,9 +125,7 @@ Array [
|
||||
If you proceed, you will be unable to use this account to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -315,13 +156,18 @@ Array [
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div />
|
||||
</div>
|
||||
<div
|
||||
className="pgn__modal-footer"
|
||||
>
|
||||
<div
|
||||
className="modal-footer"
|
||||
className="pgn__action-row"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
onClick={[MockFunction]}
|
||||
type="button"
|
||||
>
|
||||
Cancel
|
||||
@@ -337,84 +183,84 @@ Array [
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
/>,
|
||||
]
|
||||
`;
|
||||
|
||||
exports[`ConfirmationModal should match open confirmation modal snapshot 1`] = `
|
||||
Array [
|
||||
<div
|
||||
className="modal-backdrop show"
|
||||
role="presentation"
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>,
|
||||
<div
|
||||
className="modal show d-block"
|
||||
role="presentation"
|
||||
className="pgn__modal-layer"
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id2"
|
||||
aria-modal={true}
|
||||
className="modal-dialog"
|
||||
role="dialog"
|
||||
className="pgn__modal-content-container"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled={false}
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseDown={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onTouchStart={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
aria-label="Are you sure?"
|
||||
className="pgn__modal pgn__modal-md pgn__modal-default pgn__alert-modal"
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
className="pgn__modal-header"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
<h2
|
||||
className="pgn__modal-title"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id2"
|
||||
Are you sure?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="pgn__modal-body pgn__modal-body-scroll-top pgn__modal-body-scroll-bottom"
|
||||
>
|
||||
<div />
|
||||
<div
|
||||
className="pgn__modal-body-content"
|
||||
>
|
||||
<div
|
||||
className="p-3"
|
||||
>
|
||||
Are you sure?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<div
|
||||
className="alert d-flex align-items-start alert-warning mt-n2"
|
||||
>
|
||||
@@ -445,9 +291,7 @@ Array [
|
||||
If you proceed, you will be unable to use this account to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -478,13 +322,18 @@ Array [
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div />
|
||||
</div>
|
||||
<div
|
||||
className="pgn__modal-footer"
|
||||
>
|
||||
<div
|
||||
className="modal-footer"
|
||||
className="pgn__action-row"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
onClick={[MockFunction]}
|
||||
type="button"
|
||||
>
|
||||
Cancel
|
||||
@@ -500,22 +349,22 @@ Array [
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>,
|
||||
]
|
||||
`;
|
||||
|
||||
@@ -17,9 +17,7 @@ exports[`DeleteAccount should match default section snapshot 1`] = `
|
||||
Once your account is deleted, you cannot use it to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</p>
|
||||
<p
|
||||
className="text-danger h6"
|
||||
@@ -66,9 +64,7 @@ exports[`DeleteAccount should match unverified account section snapshot 1`] = `
|
||||
Once your account is deleted, you cannot use it to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</p>
|
||||
<p
|
||||
className="text-danger h6"
|
||||
@@ -118,18 +114,16 @@ exports[`DeleteAccount should match unverified account section snapshot 1`] = `
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<span>
|
||||
Before proceeding, please
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link"
|
||||
href="https://support.edx.org/hc/en-us/articles/115000940568-How-do-I-confirm-my-email-"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
activate your account
|
||||
</a>
|
||||
.
|
||||
</span>
|
||||
Before proceeding, please
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link"
|
||||
href="https://support.edx.org/hc/en-us/articles/115000940568-How-do-I-confirm-my-email-"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
activate your account
|
||||
</a>
|
||||
.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -152,9 +146,7 @@ exports[`DeleteAccount should match unverified account section snapshot 2`] = `
|
||||
Once your account is deleted, you cannot use it to take courses on localhost.
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</span>
|
||||
You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.
|
||||
</p>
|
||||
<p
|
||||
className="text-danger h6"
|
||||
@@ -204,18 +196,16 @@ exports[`DeleteAccount should match unverified account section snapshot 2`] = `
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<span>
|
||||
Before proceeding, please
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link"
|
||||
href="https://support.edx.org/hc/en-us/articles/207206067"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
unlink all social media accounts
|
||||
</a>
|
||||
.
|
||||
</span>
|
||||
Before proceeding, please
|
||||
<a
|
||||
className="pgn__hyperlink default-link standalone-link"
|
||||
href="https://support.edx.org/hc/en-us/articles/207206067"
|
||||
onClick={[Function]}
|
||||
target="_self"
|
||||
>
|
||||
unlink all social media accounts
|
||||
</a>
|
||||
.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,488 +1,89 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`SuccessModal should match default closed success modal snapshot 1`] = `
|
||||
Array [
|
||||
<div
|
||||
className="fade"
|
||||
role="presentation"
|
||||
/>,
|
||||
<div
|
||||
className="modal fade"
|
||||
role="presentation"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id1"
|
||||
aria-modal={true}
|
||||
className=""
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id1"
|
||||
>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
]
|
||||
`;
|
||||
exports[`SuccessModal should match default closed success modal snapshot 1`] = `null`;
|
||||
|
||||
exports[`SuccessModal should match default closed success modal snapshot 2`] = `
|
||||
Array [
|
||||
<div
|
||||
className="fade"
|
||||
role="presentation"
|
||||
/>,
|
||||
<div
|
||||
className="modal fade"
|
||||
role="presentation"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id2"
|
||||
aria-modal={true}
|
||||
className=""
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id2"
|
||||
>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
]
|
||||
`;
|
||||
exports[`SuccessModal should match default closed success modal snapshot 2`] = `null`;
|
||||
|
||||
exports[`SuccessModal should match default closed success modal snapshot 3`] = `
|
||||
Array [
|
||||
<div
|
||||
className="fade"
|
||||
role="presentation"
|
||||
/>,
|
||||
<div
|
||||
className="modal fade"
|
||||
role="presentation"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id3"
|
||||
aria-modal={true}
|
||||
className=""
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id3"
|
||||
>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
]
|
||||
`;
|
||||
exports[`SuccessModal should match default closed success modal snapshot 3`] = `null`;
|
||||
|
||||
exports[`SuccessModal should match default closed success modal snapshot 4`] = `
|
||||
Array [
|
||||
<div
|
||||
className="fade"
|
||||
role="presentation"
|
||||
/>,
|
||||
<div
|
||||
className="modal fade"
|
||||
role="presentation"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id4"
|
||||
aria-modal={true}
|
||||
className=""
|
||||
role="dialog"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
className="modal-content"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id4"
|
||||
>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
]
|
||||
`;
|
||||
exports[`SuccessModal should match default closed success modal snapshot 4`] = `null`;
|
||||
|
||||
exports[`SuccessModal should match open success modal snapshot 1`] = `
|
||||
Array [
|
||||
<div
|
||||
className="modal-backdrop show"
|
||||
role="presentation"
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>,
|
||||
<div
|
||||
className="modal show d-block"
|
||||
role="presentation"
|
||||
className="pgn__modal-layer"
|
||||
data-focus-lock-disabled="disabled"
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
>
|
||||
<div
|
||||
aria-labelledby="id5"
|
||||
aria-modal={true}
|
||||
className="modal-dialog"
|
||||
role="dialog"
|
||||
className="pgn__modal-content-container"
|
||||
>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
data-focus-lock-disabled={false}
|
||||
onBlur={[Function]}
|
||||
onFocus={[Function]}
|
||||
onMouseDown={[Function]}
|
||||
onScrollCapture={[Function]}
|
||||
onTouchMoveCapture={[Function]}
|
||||
onTouchStart={[Function]}
|
||||
onWheelCapture={[Function]}
|
||||
className="mw-sm p-5 bg-white mx-auto my-3"
|
||||
>
|
||||
<h3>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h3>
|
||||
<div
|
||||
className="modal-content"
|
||||
className="p-3"
|
||||
>
|
||||
<div
|
||||
className="modal-header"
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
<h2
|
||||
className="modal-title"
|
||||
id="id5"
|
||||
>
|
||||
We're sorry to see you go! Your account will be deleted shortly.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
className="modal-body"
|
||||
>
|
||||
<div>
|
||||
<p
|
||||
className="h6"
|
||||
>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="modal-footer"
|
||||
>
|
||||
<button
|
||||
className="btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
<button
|
||||
className="pgn__modal-close-button float-right btn btn-link"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={0}
|
||||
/>
|
||||
</div>
|
||||
</div>,
|
||||
<div
|
||||
data-focus-guard={true}
|
||||
style={
|
||||
Object {
|
||||
"height": "0px",
|
||||
"left": "1px",
|
||||
"overflow": "hidden",
|
||||
"padding": 0,
|
||||
"position": "fixed",
|
||||
"top": "1px",
|
||||
"width": "1px",
|
||||
}
|
||||
}
|
||||
tabIndex={-1}
|
||||
/>,
|
||||
]
|
||||
`;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line no-restricted-exports
|
||||
export { default } from './DeleteAccount';
|
||||
export { default as reducer } from './data/reducers';
|
||||
export { default as saga } from './data/sagas';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { CheckBox } from '@edx/paragon';
|
||||
import { Form } from '@edx/paragon';
|
||||
import { DECLINED } from '../data/constants';
|
||||
|
||||
const Checkboxes = (props) => {
|
||||
@@ -14,7 +14,7 @@ const Checkboxes = (props) => {
|
||||
const [selected, setSelected] = useState(values);
|
||||
useEffect(() => {
|
||||
onChange(id, selected);
|
||||
}, [selected]);
|
||||
}, [id, onChange, selected]);
|
||||
|
||||
const handleToggle = (value, option) => {
|
||||
// If the user checked 'declined', uncheck all other options
|
||||
@@ -40,16 +40,17 @@ const Checkboxes = (props) => {
|
||||
const isChecked = selected.includes(option.value);
|
||||
return (
|
||||
<div key={option.value} className="checkboxOption">
|
||||
<CheckBox
|
||||
<Form.Checkbox
|
||||
type="checkbox"
|
||||
id={option.value}
|
||||
name={option.value}
|
||||
value={option.value}
|
||||
checked={isChecked}
|
||||
autoFocus={isFirst}
|
||||
label={option.label}
|
||||
onChange={(value) => handleToggle(value, option.value)}
|
||||
/>
|
||||
onChange={(event) => handleToggle(event.target.checked, option.value)}
|
||||
>
|
||||
{option.label}
|
||||
</Form.Checkbox>
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
intlShape,
|
||||
} from '@edx/frontend-platform/i18n';
|
||||
|
||||
import { Hyperlink, Input } from '@edx/paragon';
|
||||
import { Hyperlink, Form } from '@edx/paragon';
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
@@ -13,7 +13,7 @@ import get from 'lodash.get';
|
||||
import isEmpty from 'lodash.isempty';
|
||||
import memoize from 'memoize-one';
|
||||
import { demographicsSectionSelector } from '../data/selectors';
|
||||
import EditableField from '../EditableField';
|
||||
import EditableSelectField from '../EditableSelectField';
|
||||
import Checkboxes from './Checkboxes';
|
||||
import Alert from '../Alert';
|
||||
import { saveMultipleSettings, updateDraft } from '../data/actions';
|
||||
@@ -75,7 +75,7 @@ class DemographicsSection extends React.Component {
|
||||
const matchingOption = demographicsEthnicityOptions.filter(option => option.value === e)[0];
|
||||
return matchingOption && matchingOption.label;
|
||||
}).join(', ');
|
||||
}
|
||||
};
|
||||
|
||||
handleEditableFieldChange = (name, value) => {
|
||||
this.props.updateDraft(name, value);
|
||||
@@ -188,7 +188,7 @@ class DemographicsSection extends React.Component {
|
||||
*/}
|
||||
{this.hasRetrievedDemographicsOptions() && (
|
||||
<div id="demographics-fields">
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_gender"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_gender}
|
||||
@@ -199,7 +199,7 @@ class DemographicsSection extends React.Component {
|
||||
{...editableFieldProps}
|
||||
>
|
||||
{showSelfDescribe && (
|
||||
<Input
|
||||
<Form.Control
|
||||
name="demographics_gender_description"
|
||||
id="field-demographics_gender_description"
|
||||
type="text"
|
||||
@@ -210,8 +210,8 @@ class DemographicsSection extends React.Component {
|
||||
className="mt-1"
|
||||
/>
|
||||
)}
|
||||
</EditableField>
|
||||
<EditableField
|
||||
</EditableSelectField>
|
||||
<EditableSelectField
|
||||
name="demographics_user_ethnicity"
|
||||
type="select"
|
||||
hidden
|
||||
@@ -226,8 +226,8 @@ class DemographicsSection extends React.Component {
|
||||
values={this.props.formValues.demographics_user_ethnicity}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
</EditableField>
|
||||
<EditableField
|
||||
</EditableSelectField>
|
||||
<EditableSelectField
|
||||
name="demographics_income"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_income}
|
||||
@@ -236,7 +236,7 @@ class DemographicsSection extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.demographics.income.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_military_history"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_military_history}
|
||||
@@ -245,7 +245,7 @@ class DemographicsSection extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.demographics.military_history.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_learner_education_level"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_learner_education_level}
|
||||
@@ -254,7 +254,7 @@ class DemographicsSection extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.demographics.learner_education_level.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_parent_education_level"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_parent_education_level}
|
||||
@@ -263,7 +263,7 @@ class DemographicsSection extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.demographics.parent_education_level.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_work_status"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_work_status}
|
||||
@@ -276,7 +276,7 @@ class DemographicsSection extends React.Component {
|
||||
{...editableFieldProps}
|
||||
>
|
||||
{showWorkStatusDescribe && (
|
||||
<Input
|
||||
<Form.Control
|
||||
name="demographics_work_status_description"
|
||||
id="field-demographics_work_status_description"
|
||||
type="text"
|
||||
@@ -287,8 +287,8 @@ class DemographicsSection extends React.Component {
|
||||
className="mt-1"
|
||||
/>
|
||||
)}
|
||||
</EditableField>
|
||||
<EditableField
|
||||
</EditableSelectField>
|
||||
<EditableSelectField
|
||||
name="demographics_current_work_sector"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_current_work_sector}
|
||||
@@ -297,7 +297,7 @@ class DemographicsSection extends React.Component {
|
||||
emptyLabel={this.props.intl.formatMessage(messages['account.settings.field.demographics.current_work_sector.empty'])}
|
||||
{...editableFieldProps}
|
||||
/>
|
||||
<EditableField
|
||||
<EditableSelectField
|
||||
name="demographics_future_work_sector"
|
||||
type="select"
|
||||
value={this.props.formValues.demographics_future_work_sector}
|
||||
@@ -317,7 +317,7 @@ DemographicsSection.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
formValues: PropTypes.shape({
|
||||
demographics_gender: PropTypes.string,
|
||||
demographics_user_ethnicity: PropTypes.array,
|
||||
demographics_user_ethnicity: PropTypes.shape([]),
|
||||
demographics_income: PropTypes.string,
|
||||
demographics_military_history: PropTypes.string,
|
||||
demographics_learner_education_level: PropTypes.string,
|
||||
@@ -327,11 +327,11 @@ DemographicsSection.propTypes = {
|
||||
demographics_future_work_sector: PropTypes.string,
|
||||
demographics_work_status_description: PropTypes.string,
|
||||
demographics_gender_description: PropTypes.string,
|
||||
demographicsOptions: PropTypes.object,
|
||||
demographicsOptions: PropTypes.shape({}),
|
||||
}).isRequired,
|
||||
drafts: PropTypes.shape({
|
||||
demographics_gender: PropTypes.string,
|
||||
demographics_user_ethnicity: PropTypes.array,
|
||||
demographics_user_ethnicity: PropTypes.shape([]),
|
||||
demographics_income: PropTypes.string,
|
||||
demographics_military_history: PropTypes.string,
|
||||
demographics_learner_education_level: PropTypes.string,
|
||||
@@ -341,7 +341,7 @@ DemographicsSection.propTypes = {
|
||||
demographics_future_work_sector: PropTypes.string,
|
||||
demographics_work_status_description: PropTypes.string,
|
||||
demographics_gender_description: PropTypes.string,
|
||||
demographicsOptions: PropTypes.object,
|
||||
demographicsOptions: PropTypes.shape({}),
|
||||
}).isRequired,
|
||||
formErrors: PropTypes.shape({
|
||||
demographicsError: PropTypes.string,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable no-import-assign */
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
|
||||
@@ -43,7 +43,7 @@ exports[`DemographicsSection should render 1`] = `
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -689,7 +689,7 @@ exports[`DemographicsSection should render an Alert if an error occurs 1`] = `
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -710,9 +710,7 @@ exports[`DemographicsSection should render an Alert if an error occurs 1`] = `
|
||||
>
|
||||
<div />
|
||||
<div>
|
||||
<span>
|
||||
An error occurred attempting to retrieve or save your account information. Please try again later.
|
||||
</span>
|
||||
An error occurred attempting to retrieve or save your account information. Please try again later.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1349,7 +1347,7 @@ exports[`DemographicsSection should render an Alert when demographicsOptions pro
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -1370,9 +1368,7 @@ exports[`DemographicsSection should render an Alert when demographicsOptions pro
|
||||
>
|
||||
<div />
|
||||
<div>
|
||||
<span>
|
||||
An error occurred attempting to retrieve or save your account information. Please try again later.
|
||||
</span>
|
||||
An error occurred attempting to retrieve or save your account information. Please try again later.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1422,7 +1418,7 @@ exports[`DemographicsSection should render ethnicity correctly when multiple opt
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -2061,7 +2057,7 @@ exports[`DemographicsSection should render ethnicity text correctly 1`] = `
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -2700,7 +2696,7 @@ exports[`DemographicsSection should set user input correctly when user provides
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
@@ -3346,7 +3342,7 @@ exports[`DemographicsSection should set user input correctly when user provides
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
||||
d="M19 19H5V5h7V3H3v18h18v-9h-2v7ZM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
19
src/account-settings/hoc.jsx
Normal file
19
src/account-settings/hoc.jsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import React from 'react';
|
||||
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
|
||||
export const withNavigate = Component => {
|
||||
const WrappedComponent = props => {
|
||||
const navigate = useNavigate();
|
||||
return <Component {...props} navigate={navigate} />;
|
||||
};
|
||||
return WrappedComponent;
|
||||
};
|
||||
|
||||
export const withLocation = Component => {
|
||||
const WrappedComponent = props => {
|
||||
const location = useLocation();
|
||||
return <Component {...props} location={location.pathname} />;
|
||||
};
|
||||
return WrappedComponent;
|
||||
};
|
||||
38
src/account-settings/hoc.test.jsx
Normal file
38
src/account-settings/hoc.test.jsx
Normal file
@@ -0,0 +1,38 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
|
||||
import { withLocation, withNavigate } from './hoc';
|
||||
|
||||
const mockedNavigator = jest.fn();
|
||||
|
||||
jest.mock('react-router-dom', () => ({
|
||||
useNavigate: () => mockedNavigator,
|
||||
useLocation: () => ({
|
||||
pathname: '/current-location',
|
||||
}),
|
||||
}));
|
||||
|
||||
// eslint-disable-next-line react/prop-types
|
||||
const MockComponent = ({ navigate, location }) => (
|
||||
// eslint-disable-next-line react/button-has-type, react/prop-types
|
||||
<button id="btn" onClick={() => navigate('/some-route')}>{location}</button>
|
||||
);
|
||||
const WrappedComponent = withNavigate(withLocation(MockComponent));
|
||||
|
||||
test('Provide Navigation to Component', () => {
|
||||
const wrapper = mount(
|
||||
<WrappedComponent />,
|
||||
);
|
||||
const btn = wrapper.find('#btn');
|
||||
btn.simulate('click');
|
||||
|
||||
expect(mockedNavigator).toHaveBeenCalledWith('/some-route');
|
||||
});
|
||||
|
||||
test('Provide Location Pathname to Component', () => {
|
||||
const wrapper = mount(
|
||||
<WrappedComponent />,
|
||||
);
|
||||
|
||||
expect(wrapper.find('#btn').text()).toContain('/current-location');
|
||||
});
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line no-restricted-exports
|
||||
export { default } from './AccountSettingsPage';
|
||||
export { default as reducer } from './data/reducers';
|
||||
export { default as saga } from './data/sagas';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useCallback, useEffect, useState } from 'react';
|
||||
import { connect, useDispatch } from 'react-redux';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
||||
@@ -21,35 +21,35 @@ import { nameChangeSelector } from '../data/selectors';
|
||||
import { requestNameChange, requestNameChangeFailure, requestNameChangeReset } from './data/actions';
|
||||
import messages from './messages';
|
||||
|
||||
function NameChangeModal({
|
||||
const NameChangeModal = ({
|
||||
targetFormId,
|
||||
errors,
|
||||
formValues,
|
||||
intl,
|
||||
saveState,
|
||||
}) {
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
const { push } = useHistory();
|
||||
const navigate = useNavigate();
|
||||
const { username } = getAuthenticatedUser();
|
||||
const [verifiedNameInput, setVerifiedNameInput] = useState(formValues.verified_name || '');
|
||||
const [confirmedWarning, setConfirmedWarning] = useState(false);
|
||||
|
||||
function resetLocalState() {
|
||||
const resetLocalState = useCallback(() => {
|
||||
setConfirmedWarning(false);
|
||||
dispatch(requestNameChangeReset());
|
||||
}
|
||||
}, [dispatch]);
|
||||
|
||||
function handleChange(e) {
|
||||
const handleChange = (e) => {
|
||||
setVerifiedNameInput(e.target.value);
|
||||
}
|
||||
};
|
||||
|
||||
function handleClose() {
|
||||
const handleClose = useCallback(() => {
|
||||
resetLocalState();
|
||||
dispatch(closeForm(targetFormId));
|
||||
dispatch(saveSettingsReset());
|
||||
}
|
||||
}, [dispatch, resetLocalState, targetFormId]);
|
||||
|
||||
function handleSubmit(e) {
|
||||
const handleSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (saveState === 'pending') {
|
||||
@@ -64,14 +64,14 @@ function NameChangeModal({
|
||||
const draftProfileName = targetFormId === 'name' ? formValues.name : null;
|
||||
dispatch(requestNameChange(username, draftProfileName, verifiedNameInput));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (saveState === 'complete') {
|
||||
handleClose();
|
||||
push(`/id-verification?next=${encodeURIComponent('account/settings')}`);
|
||||
navigate(`/id-verification?next=${encodeURIComponent('account/settings')}`);
|
||||
}
|
||||
}, [saveState]);
|
||||
}, [handleClose, navigate, saveState]);
|
||||
|
||||
function renderErrors() {
|
||||
if (Object.keys(errors).length > 0) {
|
||||
@@ -183,7 +183,7 @@ function NameChangeModal({
|
||||
|
||||
</ModalDialog>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
NameChangeModal.propTypes = {
|
||||
targetFormId: PropTypes.string.isRequired,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line no-restricted-exports
|
||||
export { default } from './NameChange';
|
||||
export { default as reducer } from './data/reducers';
|
||||
export { default as saga } from './data/sagas';
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/* eslint-disable no-import-assign */
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { Provider } from 'react-redux';
|
||||
import { Router } from 'react-router-dom';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import {
|
||||
fireEvent,
|
||||
render,
|
||||
screen,
|
||||
} from '@testing-library/react';
|
||||
import { createMemoryHistory } from 'history';
|
||||
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
@@ -27,8 +27,6 @@ jest.mock('react-redux', () => ({
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
jest.mock('../../data/selectors', () => jest.fn().mockImplementation(() => ({ nameChangeSelector: () => ({}) })));
|
||||
|
||||
const history = createMemoryHistory();
|
||||
|
||||
const IntlNameChange = injectIntl(NameChange);
|
||||
|
||||
const mockStore = configureStore();
|
||||
@@ -38,7 +36,7 @@ describe('NameChange', () => {
|
||||
let store = {};
|
||||
|
||||
const reduxWrapper = children => (
|
||||
<Router history={history}>
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<Provider store={store}>{children}</Provider>
|
||||
</IntlProvider>
|
||||
@@ -167,6 +165,6 @@ describe('NameChange', () => {
|
||||
props.saveState = 'complete';
|
||||
|
||||
render(reduxWrapper(<IntlNameChange {...props} />));
|
||||
expect(history.location.pathname).toEqual('/id-verification');
|
||||
expect(window.location.pathname).toEqual('/id-verification');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
import { Hyperlink } from '@edx/paragon';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
@@ -12,7 +13,7 @@ const ConfirmationAlert = (props) => {
|
||||
|
||||
const technicalSupportLink = (
|
||||
<Hyperlink
|
||||
destination="https://support.edx.org/hc/en-us/articles/206212088-What-if-I-did-not-receive-a-password-reset-message-"
|
||||
destination={getConfig().PASSWORD_RESET_SUPPORT_LINK}
|
||||
>
|
||||
<FormattedMessage
|
||||
id="account.settings.editable.field.password.reset.button.confirmation.support.link"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line no-restricted-exports
|
||||
export { default } from './ResetPassword';
|
||||
export { default as reducer } from './data/reducers';
|
||||
export { RESET_PASSWORD } from './data/actions';
|
||||
|
||||
@@ -2,8 +2,9 @@ import { AsyncActionType } from '../data/utils';
|
||||
|
||||
export const FETCH_SITE_LANGUAGES = new AsyncActionType('SITE_LANGUAGE', 'FETCH_SITE_LANGUAGES');
|
||||
|
||||
export const fetchSiteLanguages = () => ({
|
||||
export const fetchSiteLanguages = handleNavigation => ({
|
||||
type: FETCH_SITE_LANGUAGES.BASE,
|
||||
payload: { handleNavigation },
|
||||
});
|
||||
|
||||
export const fetchSiteLanguagesBegin = () => ({
|
||||
|
||||
@@ -19,6 +19,11 @@ const siteLanguageList = [
|
||||
name: 'Español (Latinoamérica)',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'fa-ir',
|
||||
name: 'فارسی',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'fr',
|
||||
name: 'Français',
|
||||
@@ -69,6 +74,31 @@ const siteLanguageList = [
|
||||
name: '中文 (简体)',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'pt',
|
||||
name: 'Português',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'it',
|
||||
name: 'Italian',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'de',
|
||||
name: 'German',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'hi',
|
||||
name: 'Hindi',
|
||||
released: true,
|
||||
},
|
||||
{
|
||||
code: 'fr-ca',
|
||||
name: 'French (CA)',
|
||||
released: true,
|
||||
},
|
||||
];
|
||||
|
||||
export default siteLanguageList;
|
||||
|
||||
@@ -10,13 +10,13 @@ import {
|
||||
import { getSiteLanguageList } from './service';
|
||||
import { handleFailure } from '../data/utils';
|
||||
|
||||
function* handleFetchSiteLanguages() {
|
||||
function* handleFetchSiteLanguages(action) {
|
||||
try {
|
||||
yield put(fetchSiteLanguagesBegin());
|
||||
const siteLanguageList = yield call(getSiteLanguageList);
|
||||
yield put(fetchSiteLanguagesSuccess(siteLanguageList));
|
||||
} catch (e) {
|
||||
yield call(handleFailure, e, fetchSiteLanguagesFailure);
|
||||
yield call(handleFailure, e, action.payload.handleNavigation, fetchSiteLanguagesFailure);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,45 +1,65 @@
|
||||
import React from 'react';
|
||||
import renderer from 'react-test-renderer';
|
||||
import { IntlProvider, injectIntl } from '@edx/frontend-platform/i18n';
|
||||
import { AppProvider } from '@edx/frontend-platform/react';
|
||||
import { initializeMockApp, mergeConfig, setConfig } from '@edx/frontend-platform';
|
||||
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import { mergeConfig, setConfig } from '@edx/frontend-platform';
|
||||
import JumpNav from '../JumpNav';
|
||||
import configureStore from '../../data/configureStore';
|
||||
|
||||
const IntlJumpNav = injectIntl(JumpNav);
|
||||
|
||||
describe('JumpNav', () => {
|
||||
mergeConfig({
|
||||
ENABLE_DEMOGRAPHICS_COLLECTION: false,
|
||||
ENABLE_ACCOUNT_DELETION: true,
|
||||
});
|
||||
|
||||
let props = {};
|
||||
let store;
|
||||
|
||||
beforeEach(() => {
|
||||
initializeMockApp({
|
||||
authenticatedUser: {
|
||||
userId: 3,
|
||||
username: 'abc123',
|
||||
administrator: true,
|
||||
roles: [],
|
||||
},
|
||||
});
|
||||
|
||||
props = {
|
||||
intl: {},
|
||||
displayDemographicsLink: false,
|
||||
};
|
||||
store = configureStore({
|
||||
notificationPreferences: {
|
||||
showPreferences: false,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('should not render Optional Information link', () => {
|
||||
it('should not render Optional Information or delete account link', () => {
|
||||
setConfig({
|
||||
ENABLE_ACCOUNT_DELETION: false,
|
||||
});
|
||||
|
||||
const tree = renderer.create((
|
||||
// Had to wrap the following in a router or I will receive an error stating:
|
||||
// "Invariant failed: You should not use <NavLink> outside a <Router>"
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<IntlProvider locale="en">
|
||||
<AppProvider store={store}>
|
||||
<IntlJumpNav {...props} />
|
||||
</IntlProvider>
|
||||
</Router>
|
||||
</AppProvider>
|
||||
</IntlProvider>
|
||||
))
|
||||
.toJSON();
|
||||
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should render Optional Information link', () => {
|
||||
it('should render Optional Information and delete account link', () => {
|
||||
setConfig({
|
||||
ENABLE_DEMOGRAPHICS_COLLECTION: true,
|
||||
ENABLE_ACCOUNT_DELETION: true,
|
||||
});
|
||||
|
||||
props = {
|
||||
@@ -48,12 +68,11 @@ describe('JumpNav', () => {
|
||||
};
|
||||
|
||||
const tree = renderer.create((
|
||||
// Same as previous test
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<IntlProvider locale="en">
|
||||
<AppProvider store={store}>
|
||||
<IntlJumpNav {...props} />
|
||||
</IntlProvider>
|
||||
</Router>
|
||||
</AppProvider>
|
||||
</IntlProvider>
|
||||
))
|
||||
.toJSON();
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
exports[`JumpNav should not render Optional Information or delete account link 1`] = `
|
||||
<div
|
||||
className="jump-nav jump-nav-sm position-sticky pt-3"
|
||||
className="jump-nav px-2.25 jump-nav-sm position-sticky pt-3"
|
||||
>
|
||||
<ul
|
||||
className="list-unstyled"
|
||||
@@ -15,8 +15,8 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#basic-information"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Account Information
|
||||
</a>
|
||||
@@ -28,8 +28,8 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#profile-information"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Profile Information
|
||||
</a>
|
||||
@@ -41,8 +41,8 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#social-media"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Social Media Links
|
||||
</a>
|
||||
@@ -54,8 +54,8 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#site-preferences"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Site Preferences
|
||||
</a>
|
||||
@@ -67,32 +67,19 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#linked-accounts"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Linked Accounts
|
||||
</a>
|
||||
</li>
|
||||
<li
|
||||
className=""
|
||||
>
|
||||
<a
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#delete-account"
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Delete My Account
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`JumpNav should render Optional Information link 1`] = `
|
||||
exports[`JumpNav should render Optional Information and delete account link 1`] = `
|
||||
<div
|
||||
className="jump-nav jump-nav-sm position-sticky pt-3"
|
||||
className="jump-nav px-2.25 jump-nav-sm position-sticky pt-3"
|
||||
>
|
||||
<ul
|
||||
className="list-unstyled"
|
||||
@@ -105,8 +92,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#basic-information"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Account Information
|
||||
</a>
|
||||
@@ -118,8 +105,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#profile-information"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Profile Information
|
||||
</a>
|
||||
@@ -131,8 +118,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#demographics-information"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Optional Information
|
||||
</a>
|
||||
@@ -144,8 +131,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#social-media"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Social Media Links
|
||||
</a>
|
||||
@@ -157,8 +144,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#site-preferences"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Site Preferences
|
||||
</a>
|
||||
@@ -170,8 +157,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#linked-accounts"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Linked Accounts
|
||||
</a>
|
||||
@@ -183,8 +170,8 @@ exports[`JumpNav should render Optional Information link 1`] = `
|
||||
aria-current="page"
|
||||
className="active"
|
||||
href="/#delete-account"
|
||||
isActive={[Function]}
|
||||
onClick={[Function]}
|
||||
style={Object {}}
|
||||
>
|
||||
Delete My Account
|
||||
</a>
|
||||
|
||||
@@ -16,7 +16,7 @@ class ThirdPartyAuth extends Component {
|
||||
}
|
||||
const disconnectUrl = e.currentTarget.getAttribute('data-disconnect-url');
|
||||
this.props.disconnectAuth(disconnectUrl, providerId);
|
||||
}
|
||||
};
|
||||
|
||||
renderUnconnectedProvider(url, name) {
|
||||
return (
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// eslint-disable-next-line no-restricted-exports
|
||||
export { default } from './ThirdPartyAuth';
|
||||
export { default as reducer } from './data/reducers';
|
||||
export { default as saga } from './data/sagas';
|
||||
|
||||
@@ -4,8 +4,10 @@ import {
|
||||
reducer as accountSettingsReducer,
|
||||
storeName as accountSettingsStoreName,
|
||||
} from '../account-settings';
|
||||
import notificationPreferencesReducer from '../notification-preferences/data/reducers';
|
||||
|
||||
const createRootReducer = () => combineReducers({
|
||||
[accountSettingsStoreName]: accountSettingsReducer,
|
||||
notificationPreferences: notificationPreferencesReducer,
|
||||
});
|
||||
export default createRootReducer;
|
||||
|
||||
21
src/head/Head.jsx
Normal file
21
src/head/Head.jsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import React from 'react';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
|
||||
import messages from './messages';
|
||||
|
||||
const Head = ({ intl }) => (
|
||||
<Helmet>
|
||||
<title>
|
||||
{intl.formatMessage(messages['account.page.title'], { siteName: getConfig().SITE_NAME })}
|
||||
</title>
|
||||
<link rel="shortcut icon" href={getConfig().FAVICON_URL} type="image/x-icon" />
|
||||
</Helmet>
|
||||
);
|
||||
|
||||
Head.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
};
|
||||
|
||||
export default injectIntl(Head);
|
||||
17
src/head/Head.test.jsx
Normal file
17
src/head/Head.test.jsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import React from 'react';
|
||||
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import { mount } from 'enzyme';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import Head from './Head';
|
||||
|
||||
describe('Head', () => {
|
||||
const props = {};
|
||||
it('should match render title tag and fivicon with the site configuration values', () => {
|
||||
mount(<IntlProvider locale="en"><Head {...props} /></IntlProvider>);
|
||||
const helmet = Helmet.peek();
|
||||
expect(helmet.title).toEqual(`Account | ${getConfig().SITE_NAME}`);
|
||||
expect(helmet.linkTags[0].rel).toEqual('shortcut icon');
|
||||
expect(helmet.linkTags[0].href).toEqual(getConfig().FAVICON_URL);
|
||||
});
|
||||
});
|
||||
11
src/head/messages.js
Normal file
11
src/head/messages.js
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const messages = defineMessages({
|
||||
'account.page.title': {
|
||||
id: 'account.page.title',
|
||||
defaultMessage: 'Account | {siteName}',
|
||||
description: 'Title tag',
|
||||
},
|
||||
});
|
||||
|
||||
export default messages;
|
||||
13
src/hooks.js
13
src/hooks.js
@@ -1,4 +1,6 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { getConfig } from '@edx/frontend-platform';
|
||||
import { logError } from '@edx/frontend-platform/logging';
|
||||
|
||||
import {
|
||||
IDLE_STATUS, LOADING_STATUS, SUCCESS_STATUS, FAILURE_STATUS,
|
||||
@@ -53,3 +55,14 @@ export function useRedirect() {
|
||||
|
||||
return redirect;
|
||||
}
|
||||
|
||||
export function useFeedbackWrapper() {
|
||||
useEffect(() => {
|
||||
try {
|
||||
// eslint-disable-next-line no-undef
|
||||
window.usabilla_live = lightningjs?.require('usabilla_live', getConfig().LEARNER_FEEDBACK_URL);
|
||||
} catch (error) {
|
||||
logError('Error loading usabilla_live', error);
|
||||
}
|
||||
}, []);
|
||||
}
|
||||
|
||||
@@ -1,32 +1,44 @@
|
||||
import { messages as headerMessages } from '@edx/frontend-component-header';
|
||||
import { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
import { messages as paragonMessages } from '@edx/paragon';
|
||||
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 deMessages from './messages/de.json';
|
||||
import es419Messages from './messages/es_419.json';
|
||||
import faIRMessages from './messages/fa_IR.json';
|
||||
import frMessages from './messages/fr.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 frCAMessages from './messages/fr_CA.json';
|
||||
import hiMessages from './messages/hi.json';
|
||||
import itMessages from './messages/it.json';
|
||||
import ptMessages from './messages/pt.json';
|
||||
import ruMessages from './messages/ru.json';
|
||||
import thMessages from './messages/th.json';
|
||||
import ukMessages from './messages/uk.json';
|
||||
import zhcnMessages from './messages/zh_CN.json';
|
||||
import dedeCAMessages from './messages/de_DE.json';
|
||||
import ititCAMessages from './messages/it_IT.json';
|
||||
import ptptCAMessages from './messages/pt_PT.json';
|
||||
// no need to import en messages-- they are in the defaultMessage field
|
||||
|
||||
const messages = {
|
||||
const appMessages = {
|
||||
ar: arMessages,
|
||||
'es-419': es419Messages,
|
||||
'fa-ir': faIRMessages,
|
||||
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,
|
||||
'de-de': dedeCAMessages,
|
||||
'it-it': ititCAMessages,
|
||||
'pt-pt': ptptCAMessages,
|
||||
};
|
||||
|
||||
export default messages;
|
||||
export default [
|
||||
headerMessages,
|
||||
paragonMessages,
|
||||
footerMessages,
|
||||
appMessages,
|
||||
];
|
||||
|
||||
@@ -1,79 +1,89 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "تتم إدارة إعدادات الملف الشخصي بواسطة {ManagerTitle}. اتصل بالمسؤول أو {support} للحصول على المساعدة.",
|
||||
"account.settings.message.duplicate.tpa.provider": "حساب {provider} الذي حددته موصول من قبل بحساب آخر على {siteName}.",
|
||||
"account.settings.message.managed.settings": "إعدادات ملفك الشخصي يديرها {ManagerTitle}. اتصل بمديرك أو ب{support} للحصول على المساعدة.",
|
||||
"account.settings.message.managed.settings.support": "الدعم",
|
||||
"account.settings.page.heading": "إعدادات الحساب",
|
||||
"account.settings.loading.message": "جاري التحميل...",
|
||||
"account.settings.loading.message": "التحميل جارٍ...",
|
||||
"account.settings.loading.error": "خطأ: {error}",
|
||||
"account.settings.banner.beta.language": "لقد قمت بتعيين لغتك الى {beta_language}، والتي لم تتم ترجمتها بالكامل حاليًا. يمكنك مساعدتنا في ترجمة هذه اللغة بالكامل من خلال الانضمام إلى مجتمع Transifex وإضافة ترجمات من الإنجليزية للمتعلمين الذين يتحدثون {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "العودة لـِ {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "المساعدة في الترجمة إلى {beta_language}",
|
||||
"account.settings.banner.beta.language": "لقد قمت بضبط لغتك على {beta_language}، وهي حاليا غير مترجمة بالكامل. يمكنك مساعدتنا في إتمام ترجمة هذه اللغة من خلال الانضمام إلى مجتمع Transifex وإضافة ترجمات من الإنجليزية للمتعلمين الذين يتحدثون {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "العودة إلى {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "ساعد في الترجمة إلى {beta_language}",
|
||||
"account.settings.section.account.information": "معلومات الحساب",
|
||||
"account.settings.section.account.information.description": "تتضمن هذه الإعدادات معلومات أساسية عن حسابك.",
|
||||
"account.settings.section.profile.information": "معلومات الملف الشخصي",
|
||||
"account.settings.section.demographics.information": "معلومات اختيارية",
|
||||
"account.settings.section.site.preferences": "تفضيلات الموقع",
|
||||
"account.settings.section.linked.accounts": "الحسابات المرتبطة",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.section.linked.accounts": "الحسابات الموصولة",
|
||||
"account.settings.section.linked.accounts.description": "يمكنك وصل حسابات هويتك لتبسيط تسجيل دخولك إلى {siteName}.",
|
||||
"account.settings.field.username": "اسم المستخدم",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.username.help.text": "الاسم الذي يعرّفك على {siteName}. لا يمكنك تغيير اسم المستخدم الخاص بك.",
|
||||
"account.settings.field.full.name": "الاسم الكامل",
|
||||
"account.settings.field.full.name.empty": "إضافة اسم",
|
||||
"account.settings.field.full.name.help.text": "الاسم المستخدم للتحقق من هويتك والذي سوف يظهر على الشهادات الخاصة بك.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "البريد الالكتروني (الدخول)",
|
||||
"account.settings.field.full.name.empty": "إضافة الاسم",
|
||||
"account.settings.field.full.name.help.text": "الاسم المستعمل للتحقق من هويتك والذي يظهر في شهاداتك.",
|
||||
"account.settings.field.full.name.help.text.default": "الاسم الذي يظهر في ملفك الشخصي العامّ.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "سيظهر هذا الاسم في شهاداتك و سجلّاتك العامّة.",
|
||||
"account.settings.field.name.verified": "اسم متحقَّق منه",
|
||||
"account.settings.field.name.verified.help.text.verified": "تم التحقق من هذا الاسم عن طريق بطاقة تعريف ذات صورة.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "تم التحقق من هذا الاسم عن طريق المراقبة.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "تم التحقق من هذا الاسم عن طريق بطاقة هوية ذات صورة، وتم اختياره للظهور في الشهادات والسجلات العامة.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "تم التحقق من هذا الاسم من خلال المراقبة، وتم تحديده للظهور في الشهادات والسجلات العامة.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "تم تسليم طلب التحقق. في العادة يستغرق هذا 48 ساعة أو أقل. لا يمكن تغيير الاسم المتحقَّق منه في هذا الوقت.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "تم تسليم امتحانك المراقَب. لا يمكن تغيير الاسم المتحقَّق منه في هذا الوقت. رجاءً أعد التفقد بعد 2-5 أيام.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "عند نجاح التحقق من الهوية، سيظهر هذا الاسم على شهاداتك و سجلاتك العامة. لا يمكن تغيير الاسم المتحقَّق منه في هذا الوقت.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "بمجرد اجتياز امتحانك المراقب للمراجعة، سيظهر هذا الاسم في شهادتك و سجلاتك العامة. لا يمكن تغيير الاسم المتحقَّق منه في هذا الوقت.",
|
||||
"account.settings.field.name.verified.verification.help": "أدخل اسمك كما يظهر في بطاقة تعريف الطالب أو الموظف الخاصة بك، أو بطاقة تعريفك الصادرة عن الحكومة.",
|
||||
"account.settings.field.full.name.help.text.submitted": "تم تسليم طلب التحقق. يستغرق هذا عادةً 48 ساعة أو أقل. لا يمكن تغيير الاسم الكامل في هذا الوقت.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "تم تسليم امتحانك المراقب. لا يمكن تغيير الاسم الكامل في هذا الوقت. يرجى التحقق مرة أخرى خلال 2-5 أيام.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "عند نجاح التحقق من الهوية، سيظهر هذا الاسم على الشهادات والسجلات العامة. لا يمكن تغيير الاسم الكامل في هذا الوقت.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "بمجرد اجتياز امتحانك المراقب للمراجعة، سيظهر هذا الاسم في شهاداتك وسجلاتك العامة. لا يمكن تغيير الاسم الكامل في هذا الوقت.",
|
||||
"account.settings.field.name.verified.success.message": "اكتمل طلب التحقق من هويتك بنجاح. لديك الآن خيار تحديد الاسم الذي تفضل ظهوره على شهاداتك وسجلاتك العامة.",
|
||||
"account.settings.field.name.verified.success.message.header": "اكتمل طلب تغيير اسمك!",
|
||||
"account.settings.field.name.verified.failure.message": "لم تنجح آخر محاولاتك للتحقق من هويتك. تم إرجاع إعدادات الحساب ذات الصلة إلى وضعها السابق.",
|
||||
"account.settings.field.name.verified.failure.message.header": "لم نستطع التحقق من هويتك.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "اعرف المزيد عن التحقق من الهوية.",
|
||||
"account.settings.field.name.verified.submitted.message": "تم تسليم طلب التحقق من هويتك و عادة ما يستغرق إكماله ما بين 24 و 48 ساعة.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "عند الموافقة على طلبك، سيظهر اسمك المحدَّث على جميع الشهادات السجلات العامة ذات الصلة.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "طلب تغيير اسمك يكاد يكتمل!",
|
||||
"account.settings.field.email": "البريد الالكتروني (تسجيل الدخول)",
|
||||
"account.settings.field.email.empty": "إضافة عنوان البريد الإلكتروني",
|
||||
"account.settings.field.email.confirmation": "لقد أرسلنا رسالة تأكيد إلى {value}. انقر فوق الرابط في الرسالة لتحديث عنوان بريدك الإلكتروني.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "عنوان البريد الإلكتروني للاسترداد",
|
||||
"account.settings.field.secondary.email.empty": "إضافة عنوان البريد الإلكتروني للاسترداد",
|
||||
"account.settings.field.secondary.email.confirmation": "لقد أرسلنا رسالة تأكيد إلى {value}. انقر فوق الرابط في الرسالة لتحديث عنوان بريد الاسترداد الإلكتروني.",
|
||||
"account.settings.field.email.confirmation": "لقد أرسلنا رسالة تأكيد إلى {value}. انقر على الرابط في الرسالة لتحديث عنوان بريدك الإلكتروني.",
|
||||
"account.settings.field.email.help.text": "على هذا العنوان تصلك الرسائل من {siteName} و من فرق المساقات.",
|
||||
"account.settings.field.secondary.email": "عنوان بريد الاستعادة الإلكتروني.",
|
||||
"account.settings.field.secondary.email.empty": "إضافة عنوان بريد إلكتروني لاستعادة حسابك",
|
||||
"account.settings.field.secondary.email.confirmation": "لقد أرسلنا رسالة تأكيد إلى {value}. انقر على الرابط في الرسالة لتحديث عنوان بريد الاستعادة الإلكتروني الخاص بك.",
|
||||
"account.settings.email.field.confirmation.header": "تعليق عملية التأكيد",
|
||||
"account.settings.field.dob": "سنة الميلاد",
|
||||
"account.settings.field.dob.empty": "إضافة سنة الميلاد",
|
||||
"account.settings.field.year_of_birth.options.empty": "اختر سنة ميلاد",
|
||||
"account.settings.field.country": "الدولة",
|
||||
"account.settings.field.year_of_birth.options.empty": "تحديد سنة الميلاد",
|
||||
"account.settings.field.dob.month": "الشهر",
|
||||
"account.settings.field.dob.year": "السنة",
|
||||
"account.settings.field.month.year.default": "اختر الشهر",
|
||||
"account.settings.field.dob.year.default": "اختر السنة",
|
||||
"account.settings.field.dob.form.button": "يرجى تأكيد تاريخ ميلادك",
|
||||
"account.settings.field.dob.form.title": "أدخل شهر وسنة ميلادك",
|
||||
"account.settings.field.dob.form.help.text": "نطلب معلومات شهر وسنة الميلاد لمساعدتنا على الامتثال لالتزاماتنا القانونية.",
|
||||
"account.settings.field.dob.form.success": "شكرا لك على إدخال المعلومات الخاصة بك.",
|
||||
"account.settings.field.month_of_birth.options.empty": "تحديد شهر الميلاد",
|
||||
"account.settingsfield.dob.error.general": "حدث خطأ تقني. رجاءً حاول مجددا.",
|
||||
"account.settings.field.country": "البلد",
|
||||
"account.settings.field.country.empty": "إضافة البلد ",
|
||||
"account.settings.field.country.options.empty": "اختر دولة",
|
||||
"account.settings.field.state": "الحالة",
|
||||
"account.settings.field.state.empty": "إضافة منطقة",
|
||||
"account.settings.field.state.options.empty": "اختر منطقة",
|
||||
"account.settings.field.country.options.empty": "اختر البلد",
|
||||
"account.settings.field.state": "المنطقة / الولاية / المحافظة",
|
||||
"account.settings.field.state.empty": "إضافة المنطقة / الولاية / المحافظة",
|
||||
"account.settings.field.state.options.empty": "حدد المنطقة",
|
||||
"account.settings.field.site.language": "لغة الموقع",
|
||||
"account.settings.field.site.language.help.text": "اللغة المستخدمة في كافة أقسام هذا الموقع. يتوفّر هذا الموقع حاليًا بعدد محدود من اللغات.",
|
||||
"account.settings.field.education": "المستوى التعليمي",
|
||||
"account.settings.field.education.empty": "إضافة المستوى التعليمي",
|
||||
"account.settings.field.education.levels.empty": "اختر المستوى التعليمي",
|
||||
"account.settings.field.education.levels.empty": "اختر مستوى تعليميًّا",
|
||||
"account.settings.field.education.levels.p": "دكتوراه",
|
||||
"account.settings.field.education.levels.m": "ماجستير أو شهادة مهنيّة",
|
||||
"account.settings.field.education.levels.b": "بكالوريوس",
|
||||
"account.settings.field.education.levels.a": "زمالة",
|
||||
"account.settings.field.education.levels.hs": "شهادة الثانوية العامة",
|
||||
"account.settings.field.education.levels.jhs": "شهادة الثانوية الصغرى/الإعدادية/المرحلة المتوسّطة",
|
||||
"account.settings.field.education.levels.el": "شهادة المدرسة الابتدائية",
|
||||
"account.settings.field.education.levels.none": "لا يوجد تعليم رسمي",
|
||||
"account.settings.field.education.levels.m": "ماجستير / ماستر أو شهادة مهنيّة",
|
||||
"account.settings.field.education.levels.b": "بكالوريوس / ليسانس",
|
||||
"account.settings.field.education.levels.a": "درجة الزمالة / دبلوم الدراسات الجامعية",
|
||||
"account.settings.field.education.levels.hs": "الثانوية العامة / البكالوريا",
|
||||
"account.settings.field.education.levels.jhs": "المدرسة الإعدادية / المتوسطة",
|
||||
"account.settings.field.education.levels.el": "المدرسة الابتدائية / الأساسية",
|
||||
"account.settings.field.education.levels.none": "دون تعليم رسمي",
|
||||
"account.settings.field.education.levels.o": "نوع آخر من التعليم",
|
||||
"account.settings.field.gender": "الجنس",
|
||||
"account.settings.field.gender.empty": "إضافة الجنس",
|
||||
@@ -86,183 +96,167 @@
|
||||
"account.settings.field.language_proficiencies.options.empty": "اختر لغة",
|
||||
"account.settings.field.time.zone": "المنطقة الزمنية",
|
||||
"account.settings.field.time.zone.empty": "ضبط المنطقة الزمنية",
|
||||
"account.settings.field.time.zone.description": "حدد المنطقة الزمنية لعرض تواريخ المساق. إذا لم تحدد منطقة زمنية، فسيتم عرض تواريخ المساق، بما في ذلك المواعيد النهائية للواجب في المنطقة الزمنية المحلية في المتصفح.",
|
||||
"account.settings.field.time.zone.default": "الافتراضي (منطقة التوقيت المحلي)",
|
||||
"account.settings.field.time.zone.description": "حدد المنطقة الزمنية لعرض تواريخ المساقات. إذا لم تحدد منطقة زمنية، فسيتم عرض تواريخ المساق، بما في ذلك المواعيد النهائية للواجبات بالتوقيت المحلّي للمتصفح.",
|
||||
"account.settings.field.time.zone.default": "الافتراضي (المنطقة الزمنية المحلية)",
|
||||
"account.settings.field.time.zone.all": "جميع المناطق الزمنية",
|
||||
"account.settings.field.time.zone.country": "المنطقة الزمنية للدولة",
|
||||
"account.settings.section.social.media": "روابط منصات التواصل الإجتماعي",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.time.zone.country": "المناطق الزمنية للبلدان",
|
||||
"account.settings.section.social.media": "روابط التواصل الإجتماعي",
|
||||
"account.settings.section.social.media.description": "اختياريًا، اربط حساباتك الشخصية بأيقونات التواصل الاجتماعي في ملفك على {siteName}.",
|
||||
"account.settings.field.social.platform.name.linkedin": "لينكد إن",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "إضافة عنوان ملف لينكد إن ",
|
||||
"account.settings.jump.nav.delete.account": "احذف حسابي",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "إضافة سيرة لينكد إن",
|
||||
"account.settings.jump.nav.delete.account": "حذف حسابي",
|
||||
"account.settings.field.social.platform.name.twitter": "تويتر",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "إضافة عنوان صفحة تويتر",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "إضافة صفحة تويتر",
|
||||
"account.settings.field.social.platform.name.facebook": "فيسبوك",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "إضافة عنوان صفحة فيسبوك",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "إضافة حساب فيسبوك",
|
||||
"account.settings.editable.field.action.save": "حفظ",
|
||||
"account.settings.editable.field.action.cancel": "إلغاء",
|
||||
"account.settings.editable.field.action.edit": "تحرير",
|
||||
"account.settings.static.field.empty": "لم يتم تحديد قيمة، فضلًا اتصل بمدير {enterprise} لتعيين بعض التغييرات.",
|
||||
"account.settings.static.field.empty.no.admin": "لم يتم تحديد قيمة",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.coaching.consent.welcome.header": "لنبدأ",
|
||||
"account.settings.coaching.consent.welcome.subheader": "نحن هنا لأجلك من البداية حتى النهاية",
|
||||
"account.settings.coaching.consent.description": "تتضمن برامج البكالوريوس التدريب الذي يركز على مهنتك وتعليمك وكيفية تحقيق نتائج مبهرة من خلال التواصل الشخصي مع خبراء متمرسين. إذا كنت مهتمًا، فقدّم المعلومات أدناه وانقر فوق \"إرسال\"، وسيتصل بك شريكنا في التدريب عبر البريد الإلكتروني و/أو الرسائل النصية لمساعدتك على المضي قدمًا. تنطبق الشروط والأحكام.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* يتم تضمين خدمات التدريب بدون أي تكلفة إضافية للمتعلمين الذين لديهم أرقام هواتف أمريكية. يتضمن التدريب رسائل نصية متكررة. قد تنطبق أسعار الرسائل والبيانات. إيقاف النص لإلغاء الاشتراك.",
|
||||
"account.settings.coaching.consent.accept-coaching": "سجّل للاستفادة من خدمات التدريب",
|
||||
"account.settings.coaching.consent.decline-coaching": "أفضّل عدم الاتصال بخدمات التدريب المجانية",
|
||||
"account.settings.coaching.consent.label.name": "يرجى تأكيد الاسم",
|
||||
"account.settings.coaching.consent.label.phone-number": "فضلًا أدخل رقم الهاتف ",
|
||||
"account.settings.coaching.consent.success.header": "تمت العملية بنجاح",
|
||||
"account.settings.coaching.consent.success.message": "لقد اشتركت في التدريب. يمكنك توقع استلام رسالة عبر البريد الإلكتروني أو الرسائل القصيرة في الأيام المقبلة.",
|
||||
"account.settings.coaching.consent.success.continue": "البدء في مساقي",
|
||||
"account.settings.coaching.managed.support": "الدعم",
|
||||
"account.settings.coaching.managed.alert": "تتم إدارة اسمك بواسطة {ManagerTitle}. اتصل بالمسؤول للحصول على المساعدة.",
|
||||
"account.settings.field.phone_number": "رقم الهاتف",
|
||||
"account.settings.field.phone_number.empty": "إضافة رقم الهاتف",
|
||||
"account.settings.field.coaching_consent": "اتفاقية التدريب",
|
||||
"account.settings.field.coaching_consent.tooltip": "تتضمن برامج البكالوريوس التدريب القائم على الرسائل النصية الذي يساعدك على إقران التجارب التعليمية مع أهدافك المهنية من خلال النصائح الشخصية. يتم تضمين خدمات التدريب بدون أي تكلفة إضافية، وهي متوفرة للمتعلمين الذين لديهم أرقام هواتف نقالة أمريكية. تنطبق أسعار المراسلة القياسية. أرسل \"قف\" في أي وقت لإلغاء الرسائل.",
|
||||
"account.settings.field.coaching_consent.error": "مطلوب رقم هاتف أمريكي صالح للدخول في التدريب",
|
||||
"account.settings.editable.field.action.edit": "تعديل",
|
||||
"account.settings.static.field.empty": "لا قيمة محددة. رجاءً اتصل بمديرك في {enterprise} ليقوم بالتعديلات.",
|
||||
"account.settings.static.field.empty.no.admin": "لا قيمة محددة.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "في حال التأشير، سيظهر هذا الاسم في شهاداتك و سجلاتك العامة.",
|
||||
"account.settings.field.name.modal.certificate.title": "اختر اسمًا مفضلًا للشهادات والسجلات العامة",
|
||||
"account.settings.field.name.modal.certificate.select": "اختر اسمًا",
|
||||
"account.settings.field.name.modal.certificate.option.full": "الاسم الكامل",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "اسم متحقَّق منه",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "اختيار الاسم",
|
||||
"account.settings.delete.account.before.proceeding": "قبل المتابعة، يرجى {actionLink}.",
|
||||
"account.settings.delete.account.header": "احذف حسابي",
|
||||
"account.settings.delete.account.header": "حذف حسابي",
|
||||
"account.settings.delete.account.subheader": "نأسف لذهابك!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "هل تريد تغيير البريد الإلكتروني أو الاسم أو كلمة المرور بدلاً من ذلك؟",
|
||||
"account.settings.delete.account.button": "احذف حسابي",
|
||||
"account.settings.delete.account.please.activate": "تنشيط حسابك",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "إلغاء ربط جميع حسابات التواصل الاجتماعي",
|
||||
"account.settings.delete.account.text.1": "ترجى الملاحظة: إن حذف حسابك وبياناتك الشخصية له أثر دائم و لا يمكن التراجع عنه. لن يكون بمقدور {siteName} استعادة حسابك ولا البيانات التي يتم حذفها.",
|
||||
"account.settings.delete.account.text.2": "بمجرد حذف حسابك، فإنك لن تستطيع استخدامه لمتابعة المساقات على {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "بمجرد حذف حسابك، فإنك لن تستطيع استخدامه لمتابعة المساقات على تطبيق edX ولا edx.org ولا أي موقع آخر تستضيفه edX. وهذا يشمل الوصول إلى edx.org من نظام صاحب العمل أو الجامعة و الوصول إلى المواقع الخاصة التي تقدمها MIT Open Learning و Wharton Executive Education و Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "اتّبع هذه التعليمات لطباعة أو تحميل شهادة",
|
||||
"account.settings.delete.account.text.warning": "تحذير: حذف الحساب أثره دائم. يرجى قراءة ما ورد أعلاه بعناية قبل المتابعة. هذا إجراء غير رجعي، و لن تتمكن بعده من استخدام نفس البريد الإلكتروني على {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "هل تريد بدلاً من ذلك تغيير بريدك الإلكتروني أو اسمك أو كلمة المرور الخاصة بك؟",
|
||||
"account.settings.delete.account.button": "حذف حسابي",
|
||||
"account.settings.delete.account.please.activate": "تفعيل حسابك",
|
||||
"account.settings.delete.account.please.confirm": "تأكيد حسابك",
|
||||
"account.settings.delete.account.please.unlink": "فصل جميع حسابات التواصل الاجتماعي",
|
||||
"account.settings.delete.account.modal.header": "هل أنت متأكد؟",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "إذا كنت لا تزال ترغب في المتابعة وحذف حسابك ، فيرجى إدخال كلمة مرور حسابك:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "تعم، أحذف",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "إلغاء",
|
||||
"account.settings.delete.account.error.unable.to.delete": "تعذر حذف الحساب",
|
||||
"account.settings.delete.account.modal.text.1": "لقد اخترت \"حذف حسابي\". إن حذف حسابك وبياناتك الشخصية ذو أثر دائم لا يمكن التراجع عنه. لن يكون بمقدور {siteName} استعادة حسابك و لا البيانات التي حذفت.",
|
||||
"account.settings.delete.account.modal.text.2": "إن واصلت، فلن تستطيع استخدام هذا الحساب لمتابعة المساقات على {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "إن واصلت، فلن تستطيع استخدام هذا الحساب لمتابعة المساقات على على تطبيق edX و لا edx.org و لا أي موقع آخر تستضيفه edX. وهذا يشمل الوصول إلى edx.org من نظام صاحب العمل أو الجامعة و الوصول إلى المواقع الخاصة التي يقدمها MIT Open Learning و Wharton Executive Education و Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "إن كنت لا تزال ترغب في المتابعة و حذف حسابك، فيرجى إدخال كلمة المرور:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "تعم، احذف",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "لا",
|
||||
"account.settings.delete.account.error.unable.to.delete": "لم نستطع حذف الحساب",
|
||||
"account.settings.delete.account.error.no.password": "كلمة المرور مطلوبة",
|
||||
"account.settings.delete.account.error.invalid.password": "كلمة المرور المدخلة غير صحيحة",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "عذراً ، حدث خطأ أثناء محاولة معالجة طلبك. الرجاء معاودة المحاولة في وقت لاحق.",
|
||||
"account.settings.delete.account.modal.after.header": "نأسف لذهابك! سيتم حذف حسابك قريبا.",
|
||||
"account.settings.delete.account.modal.after.text": "قد يستغرق حذف الحساب ، بما في ذلك الإزالة من قوائم البريد الإلكتروني ، بضعة أسابيع حتى تتم معالجته بالكامل من خلال نظامنا. إذا كنت ترغب في إلغاء الاشتراك في رسائل البريد الإلكتروني قبل ذلك الحين ، يرجى إلغاء الاشتراك من تذييل أي بريد إلكتروني.",
|
||||
"account.settings.delete.account.error.invalid.password": "كلمة المرور غير صحيحة",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "عذراً، حدث خطأ أثناء محاولة معالجة طلبك. رجاءً أعد المحاولة لاحقًا.",
|
||||
"account.settings.delete.account.modal.after.header": "نأسف لذهابك! سيُحذف حسابك في ظرف وجيز.",
|
||||
"account.settings.delete.account.modal.after.text": "حذف الحساب، بما في ذلك من إزالة من القوائم البريدية، إجراء قد يستغرق بضعة أسابيع حتى يكتمل عبر نظامنا. إن كنت تريد قبل ذلك الحين إيقاف تلقي البريد الإلكتروني، فيرجى إلغاء الاشتراك من تذييل أي بريد إلكتروني.",
|
||||
"account.settings.delete.account.modal.after.button": "إغلاق ",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "حدث خطأ أثناء محاولة استرداد معلومات حسابك أو حفظها. يرجى المحاولة مرة أخرى لاحقًا.",
|
||||
"account.settings.delete.account.text.3.edX": "قد تفقد كذلك إمكانية الوصول إلى الشهادات الموثقة و كذا مؤهلات البرامج الأخرى مثل شهادات MicroMasters. يمكنك الاحتفاظ بنسخة عنها لديك قبل المواصلة إلى الحذف. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "قد تفقد كذلك إمكانية الوصول إلى الشهادات الموثقة و كذا مؤهلات البرامج الأخرى. يمكنك الاحتفاظ بنسخة عنها لديك قبل المواصلة إلى الحذف.",
|
||||
"account.settings.message.demographics.service.issue": "حدث خطأ أثناء محاولة استخراج أو حفظ معلومات حسابك. رجاءً أعد المحاولة لاحقًا.",
|
||||
"account.settings.field.demographics.gender": "هوية الجنس",
|
||||
"account.settings.field.demographics.gender.empty": "إضافة هوية الجنس",
|
||||
"account.settings.field.demographics.gender.options.empty": "حدد هوية الجنس",
|
||||
"account.settings.field.demographics.gender_description": "وصف هوية الجنس",
|
||||
"account.settings.field.demographics.gender_description.empty": "أدخل وصفًا",
|
||||
"account.settings.field.demographics.gender_description.empty": "أدخل الوصف",
|
||||
"account.settings.field.demographics.ethnicity": "هوية العرق/ الأصل",
|
||||
"account.settings.field.demographics.ethnicity.empty": "إضافة هوية العرق/الأصل",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "فضلًا اختر جميع ما ينطبق",
|
||||
"account.settings.field.demographics.income": "الدخل المادي الأسري",
|
||||
"account.settings.field.demographics.income.empty": "إضافة الدخل المادي الأسري",
|
||||
"account.settings.field.demographics.income.options.empty": "حدد نطاق الدخل المادي للأسرة",
|
||||
"account.settings.field.demographics.military_history": "حالة الخدمة العسكرية في الولايات المتحدة الأمريكية",
|
||||
"account.settings.field.demographics.military_history.empty": "إضافة حالة الخدمة العسكرية",
|
||||
"account.settings.field.demographics.military_history.options.empty": "اختر حالة الخدمة العسكرية",
|
||||
"account.settings.field.demographics.learner_education_level": "مؤهلك التعليمي",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "إضافة مؤهلك التعليمي",
|
||||
"account.settings.field.demographics.parent_education_level": "مؤهل الوالدين/الآوصياء التعليمي",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "إضافة المؤهل التعليمي",
|
||||
"account.settings.field.demographics.education_level.options.empty": "حدد موهلاً تعليميًا",
|
||||
"account.settings.field.demographics.ethnicity.empty": "إضافة هوية العرق / الأصل",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "اختر كل ما ينطبق",
|
||||
"account.settings.field.demographics.income": "دخل الأسرة",
|
||||
"account.settings.field.demographics.income.empty": "إضافة دخل الأسرة",
|
||||
"account.settings.field.demographics.income.options.empty": "حدد نطاقًا لدخل الأسرة",
|
||||
"account.settings.field.demographics.military_history": "الوضعية إزاء الخدمة العسكرية في الولايات المتحدة",
|
||||
"account.settings.field.demographics.military_history.empty": "إضافة الوضعية إزاء الخدمة العسكرية",
|
||||
"account.settings.field.demographics.military_history.options.empty": "اختر الوضعية إزاء الخدمة العسكرية",
|
||||
"account.settings.field.demographics.learner_education_level": "مستواك التعليمي",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "إضافة المستوى التعليمي",
|
||||
"account.settings.field.demographics.parent_education_level": "مستوى الوالدين/الأولياء التعليمي",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "إضافة المستوى التعليمي",
|
||||
"account.settings.field.demographics.education_level.options.empty": "حدد المستوى التعليمي",
|
||||
"account.settings.field.demographics.work_status": "الحالة الوظيفية",
|
||||
"account.settings.field.demographics.work_status.empty": "إضافة الحالة الوظيفية",
|
||||
"account.settings.field.demographics.work_status.options.empty": "فضلًا حدد حالتك الوظيفية",
|
||||
"account.settings.field.demographics.work_status.options.empty": "حدد الحالة الوظيفية",
|
||||
"account.settings.field.demographics.work_status_description": "وصف الحالة الوظيفية",
|
||||
"account.settings.field.demographics.work_status_description.empty": "أدخل وصفًا",
|
||||
"account.settings.field.demographics.work_status_description.empty": "أدخل الوصف",
|
||||
"account.settings.field.demographics.current_work_sector": "مجال العمل الحالي",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "إضافة مجال العمل",
|
||||
"account.settings.field.demographics.future_work_sector": "مجال العمل المستقبلي",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "إضافة مجال العمل",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "حدد مجال العمل",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "الصفحة التي تبحث عنها غير متوفرة أو هناك خطأ في نص الرابط. الرجاء التحقق من الرابط والمحاولة مجددا.",
|
||||
"account.settings.section.demographics.why": "ما هي غاية {siteName} من جمع هذه المعلومات؟",
|
||||
"account.settings.name.change.title.id": "تغيير الاسم هذا يتطلب التحقق من الهوية",
|
||||
"account.settings.name.change.title.begin": "قبل أن نبدأ",
|
||||
"account.settings.name.change.warning.one": "تحذير: يقوم هذا الإجراء بتحديث الاسم الذي يظهر على جميع الشهادات التي تم الحصول عليها على هذا الحساب في الماضي و أي شهادات تحصل عليها حاليا أو مستقبلاً.",
|
||||
"account.settings.name.change.warning.two": "لا يمكن التراجع عن هذا الإجراء دون التحقق من هويتك.",
|
||||
"account.settings.name.change.id.name.label": "أدخل اسمك كما يظهر في بطاقة تعريف الطالب أو العمل أو بطاقة الهوية الصادرة عن الحكومة.",
|
||||
"account.settings.name.change.id.name.placeholder": "أدخل الاسم الموجود في بطاقة تعريفك ذات الصورة.",
|
||||
"account.settings.name.change.error.valid.name": "رجاءً أدخل اسما صحيحا.",
|
||||
"account.settings.name.change.error.general": "حدث خطأ تقني. رجاءً حاول مجددًا.",
|
||||
"account.settings.name.change.continue": "مواصلة",
|
||||
"account.settings.name.change.cancel": "إلغاء",
|
||||
"error.notfound.message": "الصفحة التي تبحث عنها غير متوفرة أو هناك خطأ في العنوان. رجاءً تحقق من العنوان و حاول مجددًا.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "الدعم الفني",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "لقد أرسلنا رسالة إلى {email}. انقر فوق الرابط في الرسالة لإعادة تعيين كلمة المرور. إذا لم يتم استلام الرسالة؟ اتصل بـ {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "تغيير كلمة المرور",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "طلبك السابق قيد التقدم، يرجى إعادة المحاولة بعد لحظات قليلة.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "لقد أرسلنا رسالة إلى {email}. انقر على الرابط في الرسالة لإعادة ضبط كلمة المرور الخاصة بك. لم تصلك الرسالة؟ اتصل بـ{technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "إعادة ضبط كلمة المرور",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "طلبك السابق في تقدّم، رجاءً حاول مجددًا بعد لحظات قليلة.",
|
||||
"account.settings.editable.field.password.reset.label": "كلمة المرور",
|
||||
"account.settings.sso.link.account": "تسجيل الدخول كـ {name}",
|
||||
"account.settings.sso.account.connected": "مربوط",
|
||||
"account.settings.sso.account.disconnect.error": "حدثت مشكلة أثناء قطع اتصال هذا الحساب، اتصل بالدعم عند استمرار المشكلة.",
|
||||
"account.settings.sso.unlink.account": "إلغاء ربط حساب {name} ",
|
||||
"account.settings.sso.no.providers": "لا يمكن ربط أية حسابات حاليًا",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"account.settings.sso.link.account": "تسجيل الدخول باستخدام {name}",
|
||||
"account.settings.sso.account.connected": "موصول",
|
||||
"account.settings.sso.account.disconnect.error": "حدثت مشكلة أثناء فصل هذا الحساب، اتصل بالدعم إن استمرت المشكلة.",
|
||||
"account.settings.sso.unlink.account": "فصل حساب {name}",
|
||||
"account.settings.sso.no.providers": "لا يمكن وصل أي حسابات في الوقت الراهن.",
|
||||
"account.page.title": "الحساب | {siteName}",
|
||||
"id.verification.access.blocked.denied": "لا يمكننا التحقق من هويتك في الوقت الراهن. إن لم تكن قد فعّلت حسابك بعد، فيرجى تفقد مجلد الرسائل غير المرغوب فيها بحثًا عن بريد التفعيل الإلكتروني من {email}.",
|
||||
"id.verification.next": "التالي",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "مثال على بطاقة هوية صحيحة بالاسم الكامل وصورة.",
|
||||
"id.verification.requirements.title": "متطلبات التحقق من الصورة",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.support": "الدعم",
|
||||
"id.verification.example.card.alt": "مثال بطاقة تعريف صحيحة بالاسم الكامل والصورة.",
|
||||
"id.verification.requirements.title": "متطلبات التحقق باستخدام الصورة",
|
||||
"id.verification.requirements.description": "لإكمال التحقق بالصورة، ستحتاج ما يلي:",
|
||||
"id.verification.requirements.card.device.title": "جهاز مزود بكاميرا",
|
||||
"id.verification.requirements.card.device.allow": "موافق",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "بيانات الخصوصية.",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "نستخدم صور التحقق الخاصة بك لتأكيد هويتك والتأكد من صحة شهادتك.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.requirements.card.device.allow": "السماح",
|
||||
"id.verification.requirements.card.id.title": "بطاقة تعريف بها صورة",
|
||||
"id.verification.requirements.card.id.text": "تحتاج إلى بطاقة تعريف صالحة تحتوي اسمك الكامل وصورتك، كرخصة القيادة أو جواز السفر مثلاً.",
|
||||
"id.verification.privacy.title": "معلومات الخصوصية",
|
||||
"id.verification.privacy.need.photo.question": "ما حاجة {siteName} لصورتي؟",
|
||||
"id.verification.privacy.need.photo.answer": "نستخدم صور التحقق الخاصة بك لتأكيد هويتك ولضمان صحة شهادتك.",
|
||||
"id.verification.privacy.do.with.photo.question": "ماذا يُفعَل بهذه الصورة في {siteName}؟",
|
||||
"id.verification.privacy.do.with.photo.answer": "نقوم بتشفير صورتك بشكل آمن وإرسالها إلى خدمة الترخيص الخاصة بنا للمراجعة. صورتك و معلوماتك لا تُحفَظ و لا تظهر في أي مكان على {siteName} بعد اكتمال عملية التحقق.",
|
||||
"id.verification.access.blocked.title": "التحقق من الهوية",
|
||||
"id.verification.access.blocked.enrollment": "أنت الآن ملتحق بمساق يتطلب التحقق من الهوية.",
|
||||
"id.verification.access.blocked.pending": "لقد قمت بالفعل بإرسال معلومات التحقق الخاصة بك. ستصلك رسالة على لوحة المعلومات عند اكتمال عملية التحقق (عادةً خلال 5 أيام).",
|
||||
"id.verification.access.blocked.enrollment": "أنت حاليا غير ملتحق بأي مساق يتطلب التحقق من الهوية.",
|
||||
"id.verification.access.blocked.pending": "لقد سلّمت من قبل معلومات التحقق الخاصة بك. ستصلك رسالة على لوحة المعلومات الخاصة بك عند اكتمال عملية التحقق (عادةً في ظرف 5 أيام).",
|
||||
"id.verification.photo.take": "التقاط صورة ",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "تمكين خاصية التعرف على الوجه",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "عند تحديد هذا الخيار، فسيظهر مربع حول وجهك. يمكن رؤية وجهك بوضوح إذا كان المربع المحيط به أزرق. إذا لم يكن وجهك في وضع جيد أو إذا لم يكن قابلاً للاكتشاف، فسيكون المربع باللون الأحمر.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "عند تحديد هذا الخيار، فسيظهر مربع حول صورة وجهك في بطاقة الهوية. يمكن رؤية وجهك بوضوح إذا كان المربع المحيط به أزرق. إذا لم يكن وجهك في وضع جيد أو إذا لم يكن قابلاً للاكتشاف، فسيكون المربع باللون الأحمر.",
|
||||
"id.verification.photo.feedback.correct": "وضع الوجه جيد.",
|
||||
"id.verification.photo.feedback.two.faces": "تم تحديد أكثر من وجه.",
|
||||
"id.verification.photo.feedback.no.faces": "لم يتم تحديد أي وجه.",
|
||||
"id.verification.photo.feedback.top.left": "وضع خاطئ. أعلى اليسار.",
|
||||
"id.verification.photo.feedback.top.center": "وضع خاطئ. أعلى الوسط.",
|
||||
"id.verification.photo.feedback.top.right": "وضع خاطئ. أعلى اليمين.",
|
||||
"id.verification.photo.feedback.center.left": "وضع خاطئ. وسط اليسار.",
|
||||
"id.verification.photo.feedback.center.center": "وضع خاطئ. قريب جدًا من الكاميرا.",
|
||||
"id.verification.photo.feedback.center.right": "وضع خاطئ. وسط اليمين.",
|
||||
"id.verification.photo.feedback.bottom.left": "وضع خاطئ. أسفل اليسار.",
|
||||
"id.verification.photo.feedback.bottom.center": "وضع خاطئ. أسفل الوسط.",
|
||||
"id.verification.photo.feedback.bottom.right": "وضع خاطئ. أسفل اليمين.",
|
||||
"id.verification.photo.retake": "إعادة التقاط الصورة؟",
|
||||
"id.verification.photo.enable.detection": "تفعيل اكتشاف الوجوه",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "في حال التأشير، سيبرز مربع حول وجهك. يمكن رؤية وجهك بوضوح إن كان المربع المحيط به أزرق اللون. أما إن كان وجهك في وضع غير جيد أو غير قابل للاكتشاف، فسيكون المربع أحمر اللون.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "في حال التأشير، سيظهر مربع حول صورة وجهك في بطاقة الهوية. يمكن رؤية وجهك بوضوح إن كان المربع المحيط به أزرق اللون. أما إن كان وجهك في وضع غير جيد أو غير قابل للاكتشاف، فسيكون المربع أحمر اللون.",
|
||||
"id.verification.photo.feedback.correct": "موضع الوجه جيد.",
|
||||
"id.verification.photo.feedback.two.faces": "تم اكتشاف أكثر من وجه واحد.",
|
||||
"id.verification.photo.feedback.no.faces": "لم يتم اكتشاف أي وجه.",
|
||||
"id.verification.photo.feedback.top.left": "الموضع خاطئ. أعلى اليسار.",
|
||||
"id.verification.photo.feedback.top.center": "الموضع خاطئ. أعلى الوسط.",
|
||||
"id.verification.photo.feedback.top.right": "الموضع خاطئ. أعلى اليمين.",
|
||||
"id.verification.photo.feedback.center.left": "الموضع خاطئ. وسط اليسار.",
|
||||
"id.verification.photo.feedback.center.center": "الموضع خاطئ. قريب جدًا من الكاميرا.",
|
||||
"id.verification.photo.feedback.center.right": "الموضع خاطئ. وسط اليمين.",
|
||||
"id.verification.photo.feedback.bottom.left": "الموضع خاطئ. أسفل اليسار.",
|
||||
"id.verification.photo.feedback.bottom.center": "الموضع خاطئ. أسفل الوسط.",
|
||||
"id.verification.photo.feedback.bottom.right": "الموضع خاطئ. أسفل اليمين.",
|
||||
"id.verification.camera.access.title": "صلاحيات الكاميرا",
|
||||
"id.verification.camera.access.title.success": "تمكين الوصول للكاميرا",
|
||||
"id.verification.camera.access.title.success": "الوصول للكاميرا ممكن",
|
||||
"id.verification.camera.access.title.failed": "تعذّر الوصول للكاميرا.",
|
||||
"id.verification.camera.access.click.allow": "فضلًا تأكد من اختيار الأمر \"السماح\"",
|
||||
"id.verification.camera.access.enable": "تمكين الكاميرا",
|
||||
"id.verification.camera.access.problems": "هل تواجه أية مشكلة؟",
|
||||
"id.verification.camera.access.skip": "قم بتخطي ملفات الصور وتحميلها بدلاً من ذلك",
|
||||
"id.verification.camera.access.success": "يبدو أن الكاميرا تعمل وجاهزة.",
|
||||
"id.verification.camera.access.failure": "يبدو أننا غير قادرين على الوصول إلى الكاميرا. ستحتاج إلى تحميل ملفات الصور الخاصة بك و معرّف الصور الخاص بك.",
|
||||
"id.verification.camera.access.failure.temporary": "يبدو أننا غير قادرين على الوصول إلى الكاميرا. يرجى التحقق من أن كاميرا الويب متصلة ومن أنك سمحت للمتصفح بالوصول إليها.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "تمكين الوصول للكاميرا في متصفّح كروم: ",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "فتح متصفّح كروم.",
|
||||
"id.verification.camera.access.click.allow": "رجاءً تأكد من النقر على \"السماح\"",
|
||||
"id.verification.camera.access.enable": "تفعيل الكاميرا",
|
||||
"id.verification.camera.access.problems": "لديك مشاكل؟",
|
||||
"id.verification.camera.access.skip": "تَخَطَّ و قم برفع ملفات صور بدلاً من ذلك.",
|
||||
"id.verification.camera.access.success": "يبدو أن كاميرا جهازك جاهزة و تعمل.",
|
||||
"id.verification.camera.access.failure": "يبدو أننا غير قادرين على الوصول إلى كاميرا جهازك. ستحتاج لرفع ملف صورتك و صورة بطاقة هويتك.",
|
||||
"id.verification.camera.access.failure.temporary": "يبدو أننا غير قادرين على الوصول إلى الكاميرا. رجاءً تحقق من أن كاميرا جهازك متصلة ومن أنك قد سمحت للمتصفح بالوصول إليها.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "لتفعيل الوصول للكاميرا في متصفح كروم:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "افتح كروم.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "توجه إلى المزيد > الإعدادات.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "لنظام ويندوز: Alt+F أو Alt+E أو F10 متبوعاً بـ SPACEBAR",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "لنظام ماك: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "ضمن علامة التبويب \"الخصوصية والأمان\"، حدد \"إعدادات الموقع\" ثم \"الكاميرا\".",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "تحت علامة التبويب \"الخصوصية والأمان\"، اختر \"إعدادات الموقع\" ثم \"الكاميرا\".",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "ضمن \"قائمة الحظر\"، ابحث عن \"edx.org\" وحدده.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "في القسم \"الصلاحيات\"، قم بتحديث صلاحيات الكاميرا إلى \"السماح\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "تمكين الوصول للكاميرا في متصفح انترنت إكسبلورر:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "في قسم \"الصلاحيات\"، قم بتحديث صلاحيات الكاميرا إلى \"السماح\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "لتفعيل الوصول للكاميرا في متصفح انترنت إكسبلورر:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "افتح إدارة إعدادات Flash Player عن طريق الانتقال إلى إعدادات Windows > لوحة التحكم > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "حدد علامة التبويب \"Camera and Mic\" (الكاميرا والميكروفون)، ثم حدد الزر \"Camera and Microphone Settings by Site\" (إعدادات الكاميرا والميكروفون حسب الموقع).",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "اختر \"edx.org\" من قائمة مواقع ويب وقم بتغيير الصلاحيات من خلال تحديد \"السماح\" في القائمة المنسدلة.",
|
||||
@@ -276,75 +270,85 @@
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "اختر \"حفظ التغييرات.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "تمكين الوصول للكاميرا في متصفّح سفاري: ",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "فتح متصفّح سفاري.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "انقر فوق قائمة تطبيق سفاري، ثم حدد \"Preferences\" (التفضيلات). يمكنك أيضاً استخدام الأمرCommand+ كاختصار للوحة المفاتيح",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "حدد علامة التبويب \"مواقع ويب\" ثم حدد \"كاميرا\".",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "انقر فوق قائمة تطبيق سفاري، ثم حدد \"Preferences\" (التفضيلات). يمكنك أيضاً استخدام الأمرCommand+, كاختصار للوحة المفاتيح",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "حدد علامة التبويب \"مواقع الويب\" ثم حدد \"كاميرا\".",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "حدد \"edx.org\" وقم بتغيير صلاحيات الكاميرا إلى \"السماح\".",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "تلميحات مفيدة للصورة",
|
||||
"id.verification.photo.tips.description": "بعد ذلك، سنحتاج منك التقاط صورة لوجهك. يرجى مراجعة التلميحات المفيدة أدناه.",
|
||||
"id.verification.photo.tips.list.title": "تلميحات الصورة",
|
||||
"id.verification.camera.access.failure.unsupported": "يبدو أن متصفحك لا يدعم الوصول إلى الكاميرا.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "لا يدعم متصفح Chrome حاليًا الوصول إلى الكاميرا على أجهزة iOS مثل أجهزة iPhone و iPad.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "رجاءً استخدم متصفحًا آخر لإكمال التحقق من الهوية.",
|
||||
"id.verification.photo.tips.title": "نصائح مفيدة بخصوص الصورة",
|
||||
"id.verification.photo.tips.description": "بعد ذلك، سنحتاج منك التقاط صورة لوجهك. يرجى مراجعة النصائح المفيدة أدناه.",
|
||||
"id.verification.photo.tips.list.title": "نصائح بخصوص الصورة",
|
||||
"id.verification.photo.tips.list.description": "لالتقاط صورة ناجحة، يُرجى التأكّد ممّا يلي:",
|
||||
"id.verification.photo.tips.list.well.lit": "أنّ الإضاءة جيّدة على وجهك.",
|
||||
"id.verification.photo.tips.list.inside.frame": "أنّ وجهك داخل إطار الصورة بالكامل.",
|
||||
"id.verification.photo.tips.list.well.lit": "أنّ وجهك مُضاء جيدًا.",
|
||||
"id.verification.photo.tips.list.inside.frame": "أنّ وجهك كلَّه داخل إطار الصورة.",
|
||||
"id.verification.portrait.photo.title.camera": "التقط صورة لنفسك",
|
||||
"id.verification.portrait.photo.instructions.camera": "عندما يكون وجهك في موضعه، استخدم زر التقاط صورة أدناه لالتقاط الصورة.",
|
||||
"id.verification.camera.help.sight.question": "ماذا لو لم أتمكن من رؤية صورة الكاميرا ؟ أو إذا لم أتمكن من رؤية صورتي لتحديد أي جانب مرئي؟",
|
||||
"id.verification.camera.help.sight.answer.portrait": "قد تتمكن من إكمال إجراء التقاط الصور من دون مساعدة، ولكن قد يتطلب الأمر بضع محاولات ضبط وضع الكاميرا بشكل صحيح. يختلف وضع الكاميرا المثالي باختلاف الكمبيوتر، ولكن بشكل عام، يكون أفضل موضع للتصوير في الرأس هو 12 إلى 18 بوصة (30-45 سم) تقريبًا من الكاميرا، مع وضع الرأس في المنتصف بالنسبة إلى شاشة الكمبيوتر. إذا تم رفض الصور التي ترسلها، فحاول تحريك اتجاه الكمبيوتر أو الكاميرا لتغيير زاوية الإضاءة.",
|
||||
"id.verification.camera.help.sight.answer.id": "قد تتمكن من إكمال إجراء التقاط الصور من دون مساعدة، ولكن قد يتطلب الأمر بضع محاولات لضبط وضع الكاميرا بشكل صحيح. يختلف الوضع الأمثل للكاميرا باختلاف جهاز الكمبيوتر، ولكن بشكل عام، يكون أفضل وضع لصورة بطاقة تعريف من 8 إلى 12 بوصة (من 20 إلى 30 سم) عن الكاميرا، مع وضع بطاقة الهوية في الوسط بالنسبة للكاميرا. إذا تم رفض الصور التي ترسلها، فحاول تحريك اتجاه الكمبيوتر أو الكاميرا لتغيير زاوية الإضاءة. إن السبب الأكثر شيوعاً للرفض هو عدم القدرة على قراءة النص الموجود على بطاقة الهوية.",
|
||||
"id.verification.portrait.photo.instructions.camera": "عندما يكون وجهك في موضعه، استخدم زر 'التقاط صورة' أدناه لالتقاط صورتك.",
|
||||
"id.verification.camera.help.sight.question": "ماذا إن لم أتمكن من رؤية صورة الكاميرا أو إن لم أتمكن من رؤية صورتي لتحديد أي جانب مرئي؟",
|
||||
"id.verification.camera.help.sight.answer.portrait": "قد تتمكن من إكمال إجراء التقاط الصور دون مساعدة، لكن قد يتطلب الأمر بضع محاولات لضبط موضع الكاميرا بشكل صحيح.يختلف موضع الكاميرا المثالي من حاسوب ﻵخر، لكن عمومًا يكون أفضل موضع لتصوير الرأس تقريبًا على بعد 12-18 بوصة (30-45 سنتمترًا) من الكاميرا، مع وضع رأسك في المنتصف بالنسبة إلى شاشة الحاسوب. إن تم رفض الصور التي ترسلها، فحاول تغيير اتجاه الكمبيوتر أو الكاميرا لتغيير زاوية الإضاءة.",
|
||||
"id.verification.camera.help.sight.answer.id": "قد تتمكن من إكمال إجراء التقاط الصور دون مساعدة، لكن قد يتطلب الأمر بضع محاولات لضبط موضع الكاميرا بشكل صحيح.يختلف موضع الكاميرا المثالي من حاسوب ﻵخر، لكن عمومًا يكون أفضل موضع لتصوير بطاقة تعريف تقريبًا على بعد 8-12 بوصة (20-30 سنتمترًا) من الكاميرا، مع وضع البطاقة في المنتصف بالنسبة للكاميرا. إن تم رفض الصور التي ترسلها، فحاول تغيير اتجاه الكمبيوتر أو الكاميرا لتغيير زاوية الإضاءة. إن أكثر سبب للرفض هو عدم القدرة على قراءة نص بطاقة التعريف.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "ماذا لو واجهت صعوبة في تثبيت رأسي في الموضع المناسب للكاميرا؟",
|
||||
"id.verification.camera.help.difficulty.question.id": "ماذا لو واجهت صعوبة في تثبيت بطاقة هويتي في الموضع المناسب للكاميرا؟",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.camera.help.difficulty.answer": "إن احتجت لمساعدة في التقاط صورة لإرسالها، فاتصل بدعم {siteName} للحصول على اقتراحات إضافية.",
|
||||
"id.verification.id.photo.unclear.question": "هل صورة بطاقة تعريفك غير واضحة أو ضبابية جدًا؟",
|
||||
"id.verification.id.tips.title": "نصائح مفيدة بخصوص بطاقة التعريف",
|
||||
"id.verification.id.tips.description": "بعد ذلك، عليك التقاط صورة لبطاقة تعريف صالحة تتضمن اسمك الكامل مع صورة، مثل رخصة القيادة أو جواز السفر.يرجى منك تجهيز بطاقة تعريفك.",
|
||||
"id.verification.id.tips.list.well.lit": "أن تكون بطاقة تعريفك مضاءة جيدًا.",
|
||||
"id.verification.id.tips.list.clear": "تأكد من قدرتك على رؤية صورتك وقراءة اسمك بوضوح.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.camera": "التقط صورة لبطاقة تعريفك",
|
||||
"id.verification.id.photo.title.upload": "ارفع صورة لبطاقة تعريفك",
|
||||
"id.verification.id.photo.preview.alt": "معاينة صورة الهوية.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "يُرجى الملاحظة:",
|
||||
"id.verification.id.photo.instructions.camera": "عندما تكون بطاقتك في موضعها، استخدم زر 'التقاط صورة' أدناه لالتقاط صورتك. يرجى استخدام جواز سفر أو رخصة قيادة أو بطاقة تعريف أخرى تتضمن اسمك الكامل وصورة لوجهك.",
|
||||
"id.verification.id.photo.instructions.upload": "يرجى رفع صورة لبطاقة تعريفك. تأكد من أن البطاقة كاملة داخل الإطار و أنها مضاءة جيدًا. يجب أن يكون حجم الملف أقل من 10 ميجابايت. الأنساق المدعومة:",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "الملف الذي حددته ليس ضمن أنواع الصورة المدعومة. اختر رجاءً من بين الأنساق التالية:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "الملف الذي حددته كبير جداً. رجاءً أعد المحاولة باستخدام ملف ذي حجم أقل من 10 ميجابايت.",
|
||||
"id.verification.name.check.title": "تحقق مرة أخرى من اسمك",
|
||||
"id.verification.name.check.instructions": "هل الاسم أدناه يطابق الاسم الموجود في بطاقة تعريفك ذات الصورة. إن لم يكن كذلك، فقم بتحديث الاسم أدناه ليطابق بطاقة تعريفك.",
|
||||
"id.verification.name.check.mismatch.information": "إن كان الاسم أدناه لا يطابق بطاقة تعريفك، فسيتم رفض تأكيد هويتك.",
|
||||
"id.verification.name.error": "رجاءً أدخل اسمك كما يظهر في بطاقة تعريفك ذات الصورة.",
|
||||
"id.verification.account.name.warning.prefix": "تُرجى الملاحظة:",
|
||||
"id.verification.account.name.settings": "إعدادات الحساب",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "صورة من هويتك للتقديم.",
|
||||
"id.verification.name.label": "الاسم",
|
||||
"id.verification.account.name.photo.alt": "صورة بطاقة هويتك التي ستُسلَّم.",
|
||||
"id.verification.review.title": "مراجعة صورك",
|
||||
"id.verification.review.description": "يُرجى التأكّد من أنّ الصور والمعلومات التي قدّمتها تمكّننا من التحقّق من هويّتك. ",
|
||||
"id.verification.review.portrait.label": "صورتك الشخصية",
|
||||
"id.verification.review.portrait.alt": "صورة شخصية للتقديم.",
|
||||
"id.verification.review.portrait.retake": "إعادة التقاط الصورة شخصية",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "إعادة التقاط صورة الهوية",
|
||||
"id.verification.review.confirm": "إرسال",
|
||||
"id.verification.submission.alert.error.face": "مطلوب صورة لوجهك. يرجى إعادة التقاط الصورة الشخصية.",
|
||||
"id.verification.submission.alert.error.id": "مطلوب صورة لبطاقة هويتك. يرجى إعادة التقاط صورة بطاقة الهوية.",
|
||||
"id.verification.submission.alert.error.name": "مطلوب اسم حساب صالح. يرجى تحديث اسم حسابك لمطابقة الاسم على هويتك.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "جارِ التحقق من الهوية",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "العودة إلى لوحة المعلومات",
|
||||
"id.verification.review.portrait.alt": "صورة وجهك التي ستُسلَّم.",
|
||||
"id.verification.review.portrait.retake": "إعادة التقاط الصورة الشخصية",
|
||||
"id.verification.review.id.label": "بطاقة تعريفك",
|
||||
"id.verification.review.id.alt": "صورة بطاقة تعريفك التي ستُسلَّم.",
|
||||
"id.verification.review.id.retake": "إعادة التقاط صورة بطاقة الهوية",
|
||||
"id.verification.review.confirm": "تسليم",
|
||||
"id.verification.submission.alert.error.face": "مطلوبة صورة لوجهك. رجاءً أعد التقاط صورتك الشخصية.",
|
||||
"id.verification.submission.alert.error.id": "مطلوبة صورة لبطاقة تعريفك. رجاءً أعد التقاط صورة لبطاقة تعريفك.",
|
||||
"id.verification.submission.alert.error.name": "مطلوب اسم حساب صحيح. يرجى تحديث اسم حسابك لمطابقة الاسم على بطاقة تعريفك.",
|
||||
"id.verification.submission.alert.error.unsupported": "واحد أو أكثر من الملفات التي قمت برفعها في نَسقٍ غير مدعوم. رجاءً اختر مما يلي:",
|
||||
"id.verification.review.error": "{siteName} صفحة دعم",
|
||||
"id.verification.submitted.title": "التحقق من الهوية جارٍ",
|
||||
"id.verification.submitted.text": "لقد تلقينا معلوماتك و نحن الآن نتحقق من هويتك. سيتم إخطارك عند اكتمال عملية التحقق (عادةً في ظرف 5 أيام). إلى ذلكم الحين، لا يزال يمكنك الوصول لجميع محتويات المساق المتاحة.",
|
||||
"id.verification.return.dashboard": "العودة للوحة المعلومات",
|
||||
"id.verification.return.course": "العودة للمساق",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "لالتقاط صورة باستخدام كاميرا الويب، قد تتلقى طلب المتصفح للوصول إلى الكاميرا. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "أنت بحاجة إلى جهاز مزود بكاميرا. إذا تلقيت طلب المتصفح للوصول إلى الكاميرا، فيرجى التأكد من النقر فوق {السماح}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\nواجهنا خطأ فني أثناء محاولة رفع طلب التحقق من الهوية\nقد تكون هذه مشكلة مؤقتة، لذا يرجى المحاولة مرة أخرى بعد بضع دقائق\nعند استمرار المشكلة يرجى الانتقال إلى {support_link} للحصول على المساعدة",
|
||||
"id.verification.account.name.edit": "Edit {sr}"
|
||||
"id.verification.return.generic": "العودة",
|
||||
"id.verification.photo.upload.help.title": "قم يدلا من هذا برفع صورة",
|
||||
"id.verification.photo.camera.help.title": "استخدم الكاميرا بدلاً من هذا",
|
||||
"id.verification.photo.upload.help.text": "إن واجهتك مشكلة في استخدام مُلتقط الصور أعلاه، فقد ترغب بدﻷ من ذلك في رفع صورة. لرفع صورة، انقر على الزر أدناه.",
|
||||
"id.verification.photo.camera.help.text": "إن واجهتك مشكلة في رفع صورة أعلاه، فقد ترغب بدلا من ذلك في استخدام كاميرا جهازك. لاستخدام الكاميرا، انقر على الزر أدناه.",
|
||||
"id.verification.upload.help.button": "انتقل إلى وضع الرفع",
|
||||
"id.verification.camera.help.button": "انتقل إلى وضع الكاميرا",
|
||||
"id.verification.request.camera.access.instructions": "حتى تلتقط صورة باستخدام الكاميرا، قد تتلقى طلبًا من المتصفح للوصول إلى الكاميرا. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "إعدادات حسابك يديرها {managerTitle}. إن لم يكن الاسم في بطاقة هويتك ذات الصورة. مطابقًا للاسم الذي في حسابك، فيرجى الاتصال بالمسؤول {profileDataManager} أو ب{support} للحصول على المساعدة قبل إتمام عملية التحقق من الصورة..",
|
||||
"id.verification.requirements.card.device.text": "أنت بحاجة إلى جهاز مزود بكاميرا. إذا تلقيت طلبًا من المتصفح للوصول إلى كاميرا جهازك، فتأكد رجاءً من النقر على {السماح}.",
|
||||
"id.verification.account.name.summary.alert": "إعدادات حسابك يديرها {managerTitle}. إن لم يكن الاسم في بطاقة هويتك ذات الصورة. مطابقًا للاسم الذي في حسابك، فيرجى الاتصال بالمسؤول {profileDataManager} أو ب{support} للحصول على المساعدة قبل إتمام عملية التحقق من الصورة..",
|
||||
"idv.submission.alert.error": "\nواجهنا خطأ فني أثناء محاولة رفع طلب التحقق من الهوية\nقد تكون هذه مشكلة مؤقتة، لذا يرجى المحاولة مجددًا بعد بضع دقائق\nإن استمرت المشكلة، فيرجى الذهاب إلى {support_link} للحصول على المساعدة.",
|
||||
"id.verification.account.name.edit": "تعديل {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
354
src/i18n/messages/de.json
Normal file
354
src/i18n/messages/de.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "Your profile settings are managed by {managerTitle}. Contact your administrator or {support} for help.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Account Settings",
|
||||
"account.settings.loading.message": "Loading...",
|
||||
"account.settings.loading.error": "Error: {error}",
|
||||
"account.settings.banner.beta.language": "You have set your language to {beta_language}, which is currently not fully translated. You can help us translate this language fully by joining the Transifex community and adding translations from English for learners that speak {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Switch Back to {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Help Translate into {beta_language}",
|
||||
"account.settings.section.account.information": "Account Information",
|
||||
"account.settings.section.account.information.description": "These settings include basic information about your account.",
|
||||
"account.settings.section.profile.information": "Profile Information",
|
||||
"account.settings.section.demographics.information": "Optional Information",
|
||||
"account.settings.section.site.preferences": "Site Preferences",
|
||||
"account.settings.section.linked.accounts": "Linked Accounts",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.field.username": "Username",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.full.name": "Full name",
|
||||
"account.settings.field.full.name.empty": "Add name",
|
||||
"account.settings.field.full.name.help.text": "The name that is used for ID verification and that appears on your certificates.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "Email address (Sign in)",
|
||||
"account.settings.field.email.empty": "Add email address",
|
||||
"account.settings.field.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your email address.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "Recovery email address",
|
||||
"account.settings.field.secondary.email.empty": "Add a recovery email address",
|
||||
"account.settings.field.secondary.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your recovery email address.",
|
||||
"account.settings.email.field.confirmation.header": "Pending confirmation",
|
||||
"account.settings.field.dob": "Year of birth",
|
||||
"account.settings.field.dob.empty": "Add year of birth",
|
||||
"account.settings.field.year_of_birth.options.empty": "Select a year of birth",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Country",
|
||||
"account.settings.field.country.empty": "Add country",
|
||||
"account.settings.field.country.options.empty": "Select a Country",
|
||||
"account.settings.field.state": "State",
|
||||
"account.settings.field.state.empty": "Add state",
|
||||
"account.settings.field.state.options.empty": "Select a State",
|
||||
"account.settings.field.site.language": "Site language",
|
||||
"account.settings.field.site.language.help.text": "The language used throughout this site. This site is currently available in a limited number of languages.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Add level of education",
|
||||
"account.settings.field.education.levels.empty": "Select a level of education",
|
||||
"account.settings.field.education.levels.p": "Doctorate",
|
||||
"account.settings.field.education.levels.m": "Master's or professional degree",
|
||||
"account.settings.field.education.levels.b": "Bachelor's Degree",
|
||||
"account.settings.field.education.levels.a": "Associate's degree",
|
||||
"account.settings.field.education.levels.hs": "Secondary/high school",
|
||||
"account.settings.field.education.levels.jhs": "Junior secondary/junior high/middle school",
|
||||
"account.settings.field.education.levels.el": "Elementary/primary school",
|
||||
"account.settings.field.education.levels.none": "No formal education",
|
||||
"account.settings.field.education.levels.o": "Other education",
|
||||
"account.settings.field.gender": "Gender",
|
||||
"account.settings.field.gender.empty": "Add gender",
|
||||
"account.settings.field.gender.options.empty": "Select a gender",
|
||||
"account.settings.field.gender.options.f": "Female",
|
||||
"account.settings.field.gender.options.m": "Male",
|
||||
"account.settings.field.gender.options.o": "Other",
|
||||
"account.settings.field.language.proficiencies": "Spoken language",
|
||||
"account.settings.field.language.proficiencies.empty": "Add a spoken language",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Select a Language",
|
||||
"account.settings.field.time.zone": "Time zone",
|
||||
"account.settings.field.time.zone.empty": "Set time zone",
|
||||
"account.settings.field.time.zone.description": "Select the time zone for displaying course dates. If you do not specify a time zone, course dates, including assignment deadlines, will be displayed in your browser’s local time zone.",
|
||||
"account.settings.field.time.zone.default": "Default (Local Time Zone)",
|
||||
"account.settings.field.time.zone.all": "All time zones",
|
||||
"account.settings.field.time.zone.country": "Country time zones",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Add LinkedIn profile",
|
||||
"account.settings.jump.nav.delete.account": "Delete My Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Add Twitter profile",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Add Facebook profile",
|
||||
"account.settings.editable.field.action.save": "Save",
|
||||
"account.settings.editable.field.action.cancel": "Cancel",
|
||||
"account.settings.editable.field.action.edit": "Edit",
|
||||
"account.settings.static.field.empty": "No value set. Contact your {enterprise} administrator to make changes.",
|
||||
"account.settings.static.field.empty.no.admin": "No value set.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.delete.account.before.proceeding": "Before proceeding, please {actionLink}.",
|
||||
"account.settings.delete.account.header": "Delete My Account",
|
||||
"account.settings.delete.account.subheader": "We're sorry to see you go!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Want to change your email, name, or password instead?",
|
||||
"account.settings.delete.account.button": "Delete My Account",
|
||||
"account.settings.delete.account.please.activate": "activate your account",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "unlink all social media accounts",
|
||||
"account.settings.delete.account.modal.header": "Are you sure?",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "If you still wish to continue and delete your account, please enter your account password:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Yes, Delete",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancel",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Unable to delete account",
|
||||
"account.settings.delete.account.error.no.password": "A password is required",
|
||||
"account.settings.delete.account.error.invalid.password": "Password is incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Sorry, there was an error trying to process your request. Please try again later.",
|
||||
"account.settings.delete.account.modal.after.header": "We're sorry to see you go! Your account will be deleted shortly.",
|
||||
"account.settings.delete.account.modal.after.text": "Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.",
|
||||
"account.settings.delete.account.modal.after.button": "Close",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "An error occurred attempting to retrieve or save your account information. Please try again later.",
|
||||
"account.settings.field.demographics.gender": "Gender identity",
|
||||
"account.settings.field.demographics.gender.empty": "Add gender identity",
|
||||
"account.settings.field.demographics.gender.options.empty": "Select a gender identity",
|
||||
"account.settings.field.demographics.gender_description": "Gender identity description",
|
||||
"account.settings.field.demographics.gender_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.ethnicity": "Race/Ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Add race/ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Select all that apply",
|
||||
"account.settings.field.demographics.income": "Family income",
|
||||
"account.settings.field.demographics.income.empty": "Add family income",
|
||||
"account.settings.field.demographics.income.options.empty": "Select a family income range",
|
||||
"account.settings.field.demographics.military_history": "U.S. Military status",
|
||||
"account.settings.field.demographics.military_history.empty": "Add military status",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Select military status",
|
||||
"account.settings.field.demographics.learner_education_level": "Your education level",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.parent_education_level": "Parents/Guardians education level",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Select education level",
|
||||
"account.settings.field.demographics.work_status": "Employment status",
|
||||
"account.settings.field.demographics.work_status.empty": "Add employment status",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Select employment status",
|
||||
"account.settings.field.demographics.work_status_description": "Employment status description",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.current_work_sector": "Current work industry",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.future_work_sector": "Future work industry",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Select work industry",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technical support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "We've sent a message to {email}. Click the link in the message to reset your password. Didn't receive the message? Contact {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reset Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Your previous request is in progress, please try again in few moments.",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Sign in with {name}",
|
||||
"account.settings.sso.account.connected": "Linked",
|
||||
"account.settings.sso.account.disconnect.error": "There was a problem disconnecting this account. Contact support if the problem persists.",
|
||||
"account.settings.sso.unlink.account": "Unlink {name} account",
|
||||
"account.settings.sso.no.providers": "No accounts can be linked at this time.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"id.verification.next": "Next",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Example of a valid identification card with a full name and photo.",
|
||||
"id.verification.requirements.title": "Photo Verification Requirements",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.requirements.card.device.title": "Device with Camera",
|
||||
"id.verification.requirements.card.device.allow": "Allow",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "Privacy Information",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "We use your verification photos to confirm your identity and ensure the validity of your certificate.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.access.blocked.title": "Identity Verification",
|
||||
"id.verification.access.blocked.enrollment": "You are not currently enrolled in a course that requires identity verification.",
|
||||
"id.verification.access.blocked.pending": "You have already submitted your verification information. You will see a message on your dashboard when the verification process is complete (usually within 5 days).",
|
||||
"id.verification.photo.take": "Take Photo",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "Enable Face Detection",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "If checked, a box will appear around your face. Your face can be seen clearly if the box around it is blue. If your face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "If checked, a box will appear around the face on your ID card. The face can be seen clearly if the box around it is blue. If the face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.feedback.correct": "Face is in a good position.",
|
||||
"id.verification.photo.feedback.two.faces": "More than one face detected.",
|
||||
"id.verification.photo.feedback.no.faces": "No face detected.",
|
||||
"id.verification.photo.feedback.top.left": "Incorrect position. Top left.",
|
||||
"id.verification.photo.feedback.top.center": "Incorrect position. Top center.",
|
||||
"id.verification.photo.feedback.top.right": "Incorrect position. Top right.",
|
||||
"id.verification.photo.feedback.center.left": "Incorrect position. Center left.",
|
||||
"id.verification.photo.feedback.center.center": "Incorrect position. Too close to camera.",
|
||||
"id.verification.photo.feedback.center.right": "Incorrect position. Center right.",
|
||||
"id.verification.photo.feedback.bottom.left": "Incorrect position. Bottom left.",
|
||||
"id.verification.photo.feedback.bottom.center": "Incorrect position. Bottom center.",
|
||||
"id.verification.photo.feedback.bottom.right": "Incorrect position. Bottom right.",
|
||||
"id.verification.camera.access.title": "Camera Permissions",
|
||||
"id.verification.camera.access.title.success": "Camera Access Enabled",
|
||||
"id.verification.camera.access.title.failed": "Camera Access Failed",
|
||||
"id.verification.camera.access.click.allow": "Please make sure to click \"Allow\"",
|
||||
"id.verification.camera.access.enable": "Enable Camera",
|
||||
"id.verification.camera.access.problems": "Having problems?",
|
||||
"id.verification.camera.access.skip": "Skip and upload image files instead",
|
||||
"id.verification.camera.access.success": "Looks like your camera is working and ready.",
|
||||
"id.verification.camera.access.failure": "It looks like we're unable to access your camera. You will need to upload image files of you and your photo id.",
|
||||
"id.verification.camera.access.failure.temporary": "It looks like we're unable to access your camera. Please verify that your webcam is connected and that you have allowed your browser to access it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "To enable camera access in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Open Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigate to More > Settings.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "For Windows: Alt+F, Alt+E, or F10 followed by the spacebar",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "For Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Under the \"Privacy and security\" tab, select \"Site Settings\" and then \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Under \"Blocked,\" find \"edx.org\" and select it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "In the \"Permissions\" section, update the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "To enable camera access in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Open the Flash Player Settings Manager by navigating to Windows Settings > Control Panel > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Select the \"Camera and Mic\" tab, and then select the \"Camera and Microphone Settings by Site\" button.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choose \"edx.org\" from the list of websites and change the permissions by selecting \"Allow\" in the dropdown menu.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "To enable camera access in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Open Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Enter \"about:preferences\" in the URL bar.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Select the \"Privacy & Security\" tab, and navigate to the \"Permissions\" section.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Next to \"Camera,\" select the \"Settings…\" button.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "In the search bar, enter \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "In the status column for \"edx.org,\" select \"Allow\" from the drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Select \"Save Changes.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "To enable camera access in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Open Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Click on the Safari app menu, then select \"Preferences.\" You can also use Command+, as a keyboard shortcut.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Select the \"Websites\" tab and then select \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Select \"edx.org\" and change the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "Helpful Photo Tips",
|
||||
"id.verification.photo.tips.description": "Next, we'll need you to take a photo of your face. Please review the helpful tips below.",
|
||||
"id.verification.photo.tips.list.title": "Photo Tips",
|
||||
"id.verification.photo.tips.list.description": "To take a successful photo, make sure that:",
|
||||
"id.verification.photo.tips.list.well.lit": "Your face is well-lit.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Your entire face fits inside the frame.",
|
||||
"id.verification.portrait.photo.title.camera": "Take a Photo of Yourself",
|
||||
"id.verification.portrait.photo.instructions.camera": "When your face is in position, use the Take Photo button below to take your photo.",
|
||||
"id.verification.camera.help.sight.question": "What if I can't see the camera image or if I can't see my photo to determine which side is visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally the best position for a headshot is approximately 12-18 inches (30-45 centimeters) from the camera, with your head centered relative to the computer screen. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle.",
|
||||
"id.verification.camera.help.sight.answer.id": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally, the best position for a photo of an ID card is 8-12 inches (20-30 centimeters) from the camera, with the ID card centered relative to the camera. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle. The most common reason for rejection is inability to read the text on the ID card.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "What if I have difficulty holding my head in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.question.id": "What if I have difficulty holding my ID in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.id.tips.list.clear": "Ensure that you can see your photo and clearly read your name.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.preview.alt": "Preview of photo ID.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "Please Note:",
|
||||
"id.verification.account.name.settings": "Account Settings",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Photo of your ID to be submitted.",
|
||||
"id.verification.review.title": "Review Your Photos",
|
||||
"id.verification.review.description": "Make sure we can verify your identity with the photos and information you have provided.",
|
||||
"id.verification.review.portrait.label": "Your Portrait",
|
||||
"id.verification.review.portrait.alt": "Photo of your face to be submitted.",
|
||||
"id.verification.review.portrait.retake": "Retake Portrait Photo",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "Retake ID Photo",
|
||||
"id.verification.review.confirm": "Submit",
|
||||
"id.verification.submission.alert.error.face": "A photo of your face is required. Please retake your portrait photo.",
|
||||
"id.verification.submission.alert.error.id": "A photo of your ID card is required. Please retake your ID photo.",
|
||||
"id.verification.submission.alert.error.name": "A valid account name is required. Please update your account name to match the name on your ID.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "Identity Verification in Progress",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "Return to Your Dashboard",
|
||||
"id.verification.return.course": "Return to Course",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "In order to take a photo using your webcam, you may receive a browser prompt for access to your camera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "You need a device that has a camera. If you receive a browser prompt for access to your camera, please make sure to click {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\n We encountered a technical error while trying to submit ID verification.\n This might be a temporary issue, so please try again in a few minutes.\n If the problem persists, please go to {support_link} for help.\n ",
|
||||
"id.verification.account.name.edit": "Edit {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
354
src/i18n/messages/de_DE.json
Normal file
354
src/i18n/messages/de_DE.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "Das von Ihnen ausgewählte {provider}-Konto ist bereits mit einem anderen {siteName}-Konto verknüpft.",
|
||||
"account.settings.message.managed.settings": "Ihre Profileinstellungen werden von {managerTitle} verwaltet. Wenden Sie sich an Ihren Administrator oder {support}, um Hilfe zu erhalten.",
|
||||
"account.settings.message.managed.settings.support": "Support",
|
||||
"account.settings.page.heading": "Benutzerkonto-Einstellungen",
|
||||
"account.settings.loading.message": "Lade...",
|
||||
"account.settings.loading.error": "Fehler: {error}",
|
||||
"account.settings.banner.beta.language": "Sie haben Ihre Sprache auf {beta_language} eingestellt, die derzeit noch nicht vollständig übersetzt ist. Sie können uns helfen, diese Sprache vollständig zu übersetzen, indem Sie der Transifex-Community beitreten und Übersetzungen aus dem Englischen für Lernende hinzufügen, die {beta_language} sprechen.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Zurück zu {previous_language} wechseln",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Helfen Sie zu übersetzen in {beta_language}",
|
||||
"account.settings.section.account.information": "Kontoinformationen",
|
||||
"account.settings.section.account.information.description": "Stellen Sie im folgenden Ihren Account mit Informationen zu Ihrer Person ein.",
|
||||
"account.settings.section.profile.information": "Profilinformationen",
|
||||
"account.settings.section.demographics.information": "Optionale Informationen",
|
||||
"account.settings.section.site.preferences": "Seiteneinstellungen",
|
||||
"account.settings.section.linked.accounts": "Verbundene Konten",
|
||||
"account.settings.section.linked.accounts.description": "Sie können Ihre Identitätskonten verknüpfen, um die Anmeldung bei {siteName} zu vereinfachen.",
|
||||
"account.settings.field.username": "Nutzername",
|
||||
"account.settings.field.username.help.text": "Der Name, der Sie auf {siteName} identifiziert. Sie können diesen Benutzernamen nicht ändern.",
|
||||
"account.settings.field.full.name": "Vollständiger Name",
|
||||
"account.settings.field.full.name.empty": "Name hinzufügen",
|
||||
"account.settings.field.full.name.help.text": "Dieser Name erscheint auf all Ihren Zertifikaten.",
|
||||
"account.settings.field.full.name.help.text.default": "Der Name, der in Ihrem öffentlichen Profil angezeigt wird.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "Dieser Name erscheint auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen.",
|
||||
"account.settings.field.name.verified": "Verifizierter Name",
|
||||
"account.settings.field.name.verified.help.text.verified": "Dieser Name wurde per Lichtbildausweis verifiziert.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "Dieser Name wurde von Proctoring verifiziert.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Dieser durch einen Lichtbildausweis verifizierte Name wird auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen erscheinen.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "Dieser von der Aufsicht verifizierte Name wird auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen erscheinen.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Die Bestätigung wurde eingereicht. Die Bearbeitung kann im Normalfall bis zu 48 Stunden dauern. Der bestätigte Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Ihre beaufsichtigte Prüfung wurde eingereicht. Der bestätigte Name kann derzeit nicht geändert werden. Bitte versuchen Sie es in 2-5 Tagen erneut.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "Nach erfolgreicher Identitätsprüfung erscheint dieser Name auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen. Der bestätigte Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Sobald Ihre beaufsichtigte Prüfung die Überprüfung bestanden hat, erscheint dieser Name auf Ihrem Zertifikat und den öffentlich zugänglichen Aufzeichnungen. Der bestätigte Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.name.verified.verification.help": "Geben Sie Ihren Namen genau so ein, wie er auf Ihrem noch nicht abgelaufenen Studenten-, Arbeits- oder amtlichen Ausweis erscheint.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Die Bestätigung wurde eingereicht. Die Bearbeitung dauert normalerweise bis zu 48 Stunden. Der für Sie registierte vollständige Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Ihre beaufsichtigte Prüfung wurde eingereicht. Der für Sie registrierte vollständige Name kann derzeit nicht geändert werden. Bitte versuchen Sie es in 2-5 Tagen erneut.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "Nach erfolgreicher Identitätsprüfung erscheint dieser Name auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen. Dieser vollständige Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Sobald Ihre beaufsichtigte Prüfung die Überprüfung bestanden hat, wird dieser Name auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen erscheinen. Der vollständige Name kann derzeit nicht geändert werden.",
|
||||
"account.settings.field.name.verified.success.message": "Ihre Anfrage zur Identitätsüberprüfung wurde erfolgreich abgeschlossen. Sie haben nun die Möglichkeit auszuwählen, welchen Namen Sie bevorzugt auf Ihren Urkunden und öffentlichen Aufzeichnungen erscheinen lassen möchten.",
|
||||
"account.settings.field.name.verified.success.message.header": "Ihr Antrag auf Namensänderung ist abgeschlossen!",
|
||||
"account.settings.field.name.verified.failure.message": "Ihr letzter Identitätsüberprüfungsversuch ist fehlgeschlagen. Zugehörige Kontoeinstellungen wurden wiederhergestellt.",
|
||||
"account.settings.field.name.verified.failure.message.header": "Wir konnten Ihre Identität nicht verifizieren.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Erfahren Sie mehr über die Identitätsprüfung",
|
||||
"account.settings.field.name.verified.submitted.message": "Ihre Anfrage zur Identitätsüberprüfung wurde übermittelt und dauert in der Regel zwischen 24 und 48 Stunden.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "Wenn Ihre Anfrage genehmigt wird, erscheint Ihr aktualisierter Name auf allen zugehörigen Zertifikaten und öffentlich zugänglichen Aufzeichnungen.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Ihr Antrag auf Namensänderung ist fast abgeschlossen!",
|
||||
"account.settings.field.email": "E-Mail Adresse (Anmelden)",
|
||||
"account.settings.field.email.empty": "E-Mail Adresse hinzufügen",
|
||||
"account.settings.field.email.confirmation": "Wir haben eine Bestätigungsnachricht an {value} gesendet. Klicken Sie auf den Link in der Nachricht, um Ihre E-Mail-Adresse zu aktualisieren.",
|
||||
"account.settings.field.email.help.text": "Unter dieser Adresse erhalten Sie Nachrichten von {siteName} und Kursteams.",
|
||||
"account.settings.field.secondary.email": "E-Mail-Adresse für die Wiederherstellung",
|
||||
"account.settings.field.secondary.email.empty": "E-Mail-Adresse für die Wiederherstellung hinzufügen",
|
||||
"account.settings.field.secondary.email.confirmation": "Wir haben eine Bestätigungsnachricht an {value} gesendet. Klicken Sie auf den Link in der Nachricht, um Ihre Wiederherstellungs-E-Mail-Adresse zu aktualisieren.",
|
||||
"account.settings.email.field.confirmation.header": "Ausstehende Bestätigung",
|
||||
"account.settings.field.dob": "Geburtsjahr",
|
||||
"account.settings.field.dob.empty": "Geburtsjahr hinzufügen",
|
||||
"account.settings.field.year_of_birth.options.empty": "Geburtsjahr auswählen",
|
||||
"account.settings.field.dob.month": "Monat",
|
||||
"account.settings.field.dob.year": "Jahr",
|
||||
"account.settings.field.month.year.default": "Wählen Sie einen Monat",
|
||||
"account.settings.field.dob.year.default": "Jahr auswählen",
|
||||
"account.settings.field.dob.form.button": "Bitte bestätigen Sie Ihr Geburtsdatum",
|
||||
"account.settings.field.dob.form.title": "Geben Sie Ihren Geburtsmonat und Ihr Geburtsjahr ein",
|
||||
"account.settings.field.dob.form.help.text": "Wir bitten um Angaben zu Geburtsmonat und Geburtsjahr, damit wir unseren gesetzlichen Verpflichtungen nachkommen können.",
|
||||
"account.settings.field.dob.form.success": "Vielen Dank für die Eingabe Ihrer Daten.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Wählen Sie einen Geburtsmonat aus",
|
||||
"account.settingsfield.dob.error.general": "Ein technischer Fehler ist aufgetreten. Bitte versuche es erneut.",
|
||||
"account.settings.field.country": "Land",
|
||||
"account.settings.field.country.empty": "Land hinzufügen",
|
||||
"account.settings.field.country.options.empty": "Land auswählen",
|
||||
"account.settings.field.state": "Zustand",
|
||||
"account.settings.field.state.empty": "Zustand hinzufügen",
|
||||
"account.settings.field.state.options.empty": "Wähle einen Staat",
|
||||
"account.settings.field.site.language": "Sprache der Website",
|
||||
"account.settings.field.site.language.help.text": "Diese Seite erscheint in der ausgewählten Sprache. Aktuell ist nur eine begrenzte Anzahl an Sprachen verfügbar.",
|
||||
"account.settings.field.education": "Bildung",
|
||||
"account.settings.field.education.empty": "Bildungsgrad hinzufügen",
|
||||
"account.settings.field.education.levels.empty": "Bildungsgrad auswählen",
|
||||
"account.settings.field.education.levels.p": "Doktortitel",
|
||||
"account.settings.field.education.levels.m": "Master oder gleichwertiger akademischer Bildungsgrad",
|
||||
"account.settings.field.education.levels.b": "Bachelor",
|
||||
"account.settings.field.education.levels.a": "Allgemeine Hochschulreife oder gleichwertiger Abschluss",
|
||||
"account.settings.field.education.levels.hs": "Mittlere Reife",
|
||||
"account.settings.field.education.levels.jhs": "Hauptschule",
|
||||
"account.settings.field.education.levels.el": "Grundschule",
|
||||
"account.settings.field.education.levels.none": "Keinen Bildungsabschluss",
|
||||
"account.settings.field.education.levels.o": "Sonstige Bildung",
|
||||
"account.settings.field.gender": "Geschlecht",
|
||||
"account.settings.field.gender.empty": "Geschlecht hinzufügen",
|
||||
"account.settings.field.gender.options.empty": "Geschlecht auswählen",
|
||||
"account.settings.field.gender.options.f": "Weiblich",
|
||||
"account.settings.field.gender.options.m": "Männlich",
|
||||
"account.settings.field.gender.options.o": "Anderer Abschluss",
|
||||
"account.settings.field.language.proficiencies": "Sprachenkenntnisse",
|
||||
"account.settings.field.language.proficiencies.empty": "Gesprochene Sprache hinzufügen",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Gesprochene Sprache auswählen",
|
||||
"account.settings.field.time.zone": "Zeitzone",
|
||||
"account.settings.field.time.zone.empty": "Zeitzone setzen",
|
||||
"account.settings.field.time.zone.description": "Wählen Sie die Zeitzone für die Anzeige der Kursdaten. Wenn Sie keine Zeitzone angeben, werden die Kursdaten einschließlich der Abgabefristen für Aufgaben in der lokalen Zeitzone Ihres Browsers angezeigt.",
|
||||
"account.settings.field.time.zone.default": "Standard (Lokale Zeitzone)",
|
||||
"account.settings.field.time.zone.all": "Alle Zeitzonen",
|
||||
"account.settings.field.time.zone.country": "Länderzeitzonen",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Verknüpfen Sie optional Ihre persönlichen Konten mit den Social-Media-Symbolen in Ihrem {siteName}-Profil.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "LinkedIn Profil hinzufügen",
|
||||
"account.settings.jump.nav.delete.account": "Meinen Account löschen",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Twitter Profil hinzufügen",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Facebook Profil hinzufügen",
|
||||
"account.settings.editable.field.action.save": "Speichern",
|
||||
"account.settings.editable.field.action.cancel": "Abbrechen",
|
||||
"account.settings.editable.field.action.edit": "Bearbeiten",
|
||||
"account.settings.static.field.empty": "Kein Wert eingestellt. Wenden Sie sich an Ihren {enterprise} Administrator, um Änderungen vorzunehmen.",
|
||||
"account.settings.static.field.empty.no.admin": "Kein Wert eingestellt.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "Wenn diese Option aktiviert ist, erscheint dieser Name auf Ihren Zertifikaten und öffentlich zugänglichen Aufzeichnungen.",
|
||||
"account.settings.field.name.modal.certificate.title": "Wählen Sie einen bevorzugten Namen für Zertifikate und öffentlich zugängliche Aufzeichnungen",
|
||||
"account.settings.field.name.modal.certificate.select": "Wählen Sie einen Namen aus",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Vollständiger Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verifizierter Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Wähle Name",
|
||||
"account.settings.delete.account.before.proceeding": "Bevor Sie fortfahren, bitte {actionLink}.",
|
||||
"account.settings.delete.account.header": "Meinen Account löschen",
|
||||
"account.settings.delete.account.subheader": "Es tut uns leid, dass Sie Ihren Account löschen möchten!",
|
||||
"account.settings.delete.account.text.1": "Bitte beachten Sie: Die Löschung Ihres Kontos und Ihrer persönlichen Daten ist dauerhaft und kann nicht rückgängig gemacht werden. {siteName} kann Ihr Konto oder die gelöschten Daten nicht wiederherstellen.",
|
||||
"account.settings.delete.account.text.2": "Sobald Ihr Konto gelöscht wurde, können Sie es nicht mehr für die Teilnahme an Kursen auf {siteName} verwenden.",
|
||||
"account.settings.delete.account.text.2.edX": "Die Löschung Ihres Accounts von dieser Plattform beinhaltet auch Ihren Account auf der Mobile App und weiteren Seiten, die zu dieser Plattform gehören. ",
|
||||
"account.settings.delete.account.text.3.link": "Befolgen Sie diese Anweisungen zum Drucken oder Herunterladen eines Zertifikats",
|
||||
"account.settings.delete.account.text.warning": "Warnung: Das Löschen des Kontos ist dauerhaft. Bitte lesen Sie das Obige sorgfältig durch, bevor Sie fortfahren. Dies ist eine irreversible Aktion und Sie können dieselbe E-Mail-Adresse nicht mehr auf {siteName} verwenden.",
|
||||
"account.settings.delete.account.text.change.instead": "Möchten Sie stattdessen Ihre E-Mail-Adresse, Ihren Namen oder Ihr Passwort ändern?",
|
||||
"account.settings.delete.account.button": "Meinen Account löschen",
|
||||
"account.settings.delete.account.please.activate": "Aktivieren Sie Ihren Account",
|
||||
"account.settings.delete.account.please.confirm": "Bestätigen Sie ihr Konto",
|
||||
"account.settings.delete.account.please.unlink": "alle Social Media Konten trennen",
|
||||
"account.settings.delete.account.modal.header": "Sind Sie sicher?",
|
||||
"account.settings.delete.account.modal.text.1": "Sie haben „Mein Konto löschen“ ausgewählt. Die Löschung Ihres Kontos und Ihrer personenbezogenen Daten ist dauerhaft und kann nicht rückgängig gemacht werden. {siteName} kann Ihr Konto oder die gelöschten Daten nicht wiederherstellen.",
|
||||
"account.settings.delete.account.modal.text.2": "Wenn Sie fortfahren, können Sie dieses Konto nicht verwenden, um an Kursen auf {siteName} teilzunehmen.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "Wenn Sie fortfahren, können Sie dieses Konto nicht verwenden, um Kurse über die edX-App, edx.org oder eine andere von edX gehostete Website zu besuchen. Dazu gehört der Zugriff auf edx.org aus dem System Ihres Arbeitgebers oder Ihrer Universität und der Zugriff auf private Websites, die von MIT Open Learning, Wharton Executive Education und Harvard Medical School angeboten werden.",
|
||||
"account.settings.delete.account.modal.enter.password": "Wenn Sie sicher sind, dass Sie Ihr Account löschen möchten, geben Sie bitte Ihr Passwort ein:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Ja, löschen.",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Abbrechen",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Es ist nicht möglich den Account zu löschen.",
|
||||
"account.settings.delete.account.error.no.password": "Ein Passwort ist erforderlich",
|
||||
"account.settings.delete.account.error.invalid.password": "Das Passwort ist falsch.",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Entschuldigung, es gab einen Fehler bei der Bearbeitung Ihrer Anfrage. Bitte versuchen Sie es später noch einmal.",
|
||||
"account.settings.delete.account.modal.after.header": "Es tut uns leid, dass Sie Ihr Konto löschen möchten! Ihr Konto wird in Kürze gelöscht.",
|
||||
"account.settings.delete.account.modal.after.text": "Es kann einige Tage dauern, bis Ihre Daten vollkommen aus unserem System, sowie aus allen E-Mail Listen entfernt werden. ",
|
||||
"account.settings.delete.account.modal.after.button": "Schließen",
|
||||
"account.settings.delete.account.text.3.edX": "Sie können auch den Zugriff auf verifizierte Zertifikate und andere Programmanmeldeinformationen wie MicroMasters-Zertifikate verlieren. Sie können diese für Ihre Unterlagen kopieren, bevor Sie mit dem Löschen fortfahren. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "Sie verlieren möglicherweise auch den Zugriff auf verifizierte Zertifikate und andere Programmanmeldeinformationen. Sie können diese für Ihre Unterlagen kopieren, bevor Sie mit dem Löschen fortfahren.",
|
||||
"account.settings.message.demographics.service.issue": "Beim Versuch, Ihre Kontoinformationen abzurufen oder zu speichern, ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.",
|
||||
"account.settings.field.demographics.gender": "Geschlecht",
|
||||
"account.settings.field.demographics.gender.empty": "Geschlecht hinzufügen",
|
||||
"account.settings.field.demographics.gender.options.empty": "Wählen Sie ein Geschlecht aus",
|
||||
"account.settings.field.demographics.gender_description": "Beschreibung des Geschlechts",
|
||||
"account.settings.field.demographics.gender_description.empty": "Beschreibung eingeben",
|
||||
"account.settings.field.demographics.ethnicity": "Rasse/ethnische Identität",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Rassen-/Ethnizitätsidentität hinzufügen",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Wählen Sie alle zutreffenden",
|
||||
"account.settings.field.demographics.income": "Familieneinkommen",
|
||||
"account.settings.field.demographics.income.empty": "Fügen Sie das Familieneinkommen hinzu",
|
||||
"account.settings.field.demographics.income.options.empty": "Wählen Sie eine Familieneinkommensspanne aus",
|
||||
"account.settings.field.demographics.military_history": "US-Militärstatus",
|
||||
"account.settings.field.demographics.military_history.empty": "Militärstatus hinzufügen",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Militärstatus auswählen",
|
||||
"account.settings.field.demographics.learner_education_level": "Ihr Bildungsstand",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Bildungsgrad hinzufügen",
|
||||
"account.settings.field.demographics.parent_education_level": "Bildungsniveau der Eltern/Erziehungsberechtigten",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Bildungsgrad hinzufügen",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Bildungsstufe auswählen",
|
||||
"account.settings.field.demographics.work_status": "Arbeitsverhältnis",
|
||||
"account.settings.field.demographics.work_status.empty": "Beschäftigungsstatus hinzufügen",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Wählen Sie Ihren Beschäftigungsstatus",
|
||||
"account.settings.field.demographics.work_status_description": "Beschreibung des Beschäftigungsstatus",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Beschreibung eingeben",
|
||||
"account.settings.field.demographics.current_work_sector": "Aktuelle Arbeitsbranche",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Arbeitsbranche hinzufügen",
|
||||
"account.settings.field.demographics.future_work_sector": "Industrie der Zukunft",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Arbeitsbranche hinzufügen",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Arbeitsbranche auswählen",
|
||||
"account.settings.section.demographics.why": "Warum sammelt {siteName} diese Informationen?",
|
||||
"account.settings.name.change.title.id": "Diese Namensänderung erfordert eine Identitätsprüfung",
|
||||
"account.settings.name.change.title.begin": "Bevor wir anfangen",
|
||||
"account.settings.name.change.warning.one": "Warnung: Diese Aktion aktualisiert den Namen, der auf allen Zertifikaten erscheint, die in der Vergangenheit für dieses Konto erworben wurden, sowie auf allen Zertifikaten, die Sie derzeit erwerben oder in Zukunft erwerben werden.",
|
||||
"account.settings.name.change.warning.two": "Diese Aktion kann nicht rückgängig gemacht werden, ohne Ihre Identität zu bestätigen.",
|
||||
"account.settings.name.change.id.name.label": "Geben Sie Ihren Namen so ein, wie er auf Ihrem noch nicht abgelaufenen Studenten-, Arbeits- oder amtlichen Ausweis erscheint.",
|
||||
"account.settings.name.change.id.name.placeholder": "Geben Sie den Namen auf Ihrem Lichtbildausweis ein",
|
||||
"account.settings.name.change.error.valid.name": "Bitte geben Sie einen gültigen Namen ein.",
|
||||
"account.settings.name.change.error.general": "Ein technischer Fehler ist aufgetreten. Bitte versuche es erneut.",
|
||||
"account.settings.name.change.continue": "Fortsetzen",
|
||||
"account.settings.name.change.cancel": "Löschen",
|
||||
"error.notfound.message": "Die gesuchte Seite ist nicht verfügbar oder es liegt ein Fehler in der URL vor. Bitte überprüfen Sie die URL und versuchen Sie es erneut.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technischer Support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "Wir haben eine Nachricht an {email} geschickt. Klicken Sie auf den Link in der Nachricht, um Ihr Passwort zurückzusetzen. Sie haben die Nachricht nicht erhalten? Kontaktieren Sie {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Passwort zurücksetzen",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Ihre vorherige Anfrage wird bearbeitet, bitte versuchen Sie es in wenigen Augenblicken erneut.",
|
||||
"account.settings.editable.field.password.reset.label": "Passwort",
|
||||
"account.settings.sso.link.account": "Anmelden mit {name}",
|
||||
"account.settings.sso.account.connected": "Verbunden",
|
||||
"account.settings.sso.account.disconnect.error": "Es gab ein Problem bei der Trennung dieses Kontos. Wenden Sie sich an den Support, wenn das Problem weiterhin besteht.",
|
||||
"account.settings.sso.unlink.account": "Verlinkung zu {name} Konto entfernen",
|
||||
"account.settings.sso.no.providers": "Zu diesem Zeitpunkt können keine Konten verlinkt werden.",
|
||||
"account.page.title": "Konto | {siteName}",
|
||||
"id.verification.access.blocked.denied": "Wir können Ihre Identität derzeit nicht überprüfen. Wenn Sie Ihr Konto noch nicht aktiviert haben, suchen Sie bitte in Ihrem Spam-Ordner nach der Aktivierungs-E-Mail von {email}.",
|
||||
"id.verification.next": "Weiter",
|
||||
"id.verification.support": "Support",
|
||||
"id.verification.example.card.alt": "Beispiel eines gültigen Personalausweises mit vollständigem Namen und Foto.",
|
||||
"id.verification.requirements.title": "Anforderungen für die Fotoüberprüfung",
|
||||
"id.verification.requirements.description": "Um die Fotoüberprüfung abzuschließen, benötigen Sie Folgendes:",
|
||||
"id.verification.requirements.card.device.title": "Gerät mit Kamera",
|
||||
"id.verification.requirements.card.device.allow": "Erlauben",
|
||||
"id.verification.requirements.card.id.title": "Lichtbildausweis",
|
||||
"id.verification.requirements.card.id.text": "Sie benötigen einen gültigen Ausweis, der Ihren vollständigen Namen und ein Foto enthält, z. B. einen Führerschein oder Reisepass.",
|
||||
"id.verification.privacy.title": "Datenschutzinformationen",
|
||||
"id.verification.privacy.need.photo.question": "Warum benötigt {siteName} mein Foto?",
|
||||
"id.verification.privacy.need.photo.answer": "Wir nutzen Ihre Fotos , um Ihre Identität zu bestätigen und die Gültigkeit Ihres Zertifikates zu grantieren.",
|
||||
"id.verification.privacy.do.with.photo.question": "Was macht {siteName} mit diesem Foto?",
|
||||
"id.verification.privacy.do.with.photo.answer": "Wir verschlüsseln Ihr Foto sicher und senden es zur Überprüfung an unseren Autorisierungsdienst. Ihr Foto und Ihre Informationen werden nach Abschluss des Verifizierungsprozesses nirgendwo auf {siteName} gespeichert oder angezeigt.",
|
||||
"id.verification.access.blocked.title": "Identitäts-Verifikation",
|
||||
"id.verification.access.blocked.enrollment": "Sie sind derzeit nicht in einem Kurs eingeschrieben, der eine Identitätsprüfung erfordert.",
|
||||
"id.verification.access.blocked.pending": "Sie haben Ihre Bestätigungsinformationen bereits übermittelt. Sie sehen eine Nachricht auf Ihrem Dashboard, wenn der Verifizierungsprozess abgeschlossen ist (normalerweise innerhalb von 5 Tagen).",
|
||||
"id.verification.photo.take": "Bild aufnehmen",
|
||||
"id.verification.photo.retake": "Foto wiederholen?",
|
||||
"id.verification.photo.enable.detection": "Gesichtserkennung aktivieren",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "Wenn diese Option aktiviert ist, erscheint ein Kästchen um Ihr Gesicht. Ihr Gesicht ist deutlich zu sehen, wenn der Rahmen um es herum blau ist. Wenn sich Ihr Gesicht in einer schlechten Position befindet oder nicht erkennbar ist, ist das Feld rot.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "Wenn diese Option aktiviert ist, erscheint ein Kästchen um das Gesicht Ihres Personalausweises. Das Gesicht ist deutlich zu sehen, wenn der Rahmen um es herum blau ist. Wenn das Gesicht nicht in einer guten Position oder nicht erkennbar ist, wird das Kästchen rot.",
|
||||
"id.verification.photo.feedback.correct": "Das Gesicht ist in einer guten Position.",
|
||||
"id.verification.photo.feedback.two.faces": "Mehr als ein Gesicht erkannt.",
|
||||
"id.verification.photo.feedback.no.faces": "Kein Gesicht erkannt.",
|
||||
"id.verification.photo.feedback.top.left": "Falsche Stellung. Oben links.",
|
||||
"id.verification.photo.feedback.top.center": "Falsche Stellung. Oben in der Mitte.",
|
||||
"id.verification.photo.feedback.top.right": "Falsche Stellung. Oben rechts.",
|
||||
"id.verification.photo.feedback.center.left": "Falsche Stellung. Mitte links.",
|
||||
"id.verification.photo.feedback.center.center": "Falsche Stellung. Zu nah an der Kamera.",
|
||||
"id.verification.photo.feedback.center.right": "Falsche Stellung. Mitte rechts.",
|
||||
"id.verification.photo.feedback.bottom.left": "Falsche Stellung. Unten links.",
|
||||
"id.verification.photo.feedback.bottom.center": "Falsche Stellung. Unten in der Mitte.",
|
||||
"id.verification.photo.feedback.bottom.right": "Falsche Stellung. Unten rechts.",
|
||||
"id.verification.camera.access.title": "Kameraberechtigungen",
|
||||
"id.verification.camera.access.title.success": "Kamerazugriff aktiviert",
|
||||
"id.verification.camera.access.title.failed": "Kamerazugriff fehlgeschlagen",
|
||||
"id.verification.camera.access.click.allow": "Bitte stellen Sie sicher, dass Sie auf "Zulassen" klicken",
|
||||
"id.verification.camera.access.enable": "Kamera aktivieren",
|
||||
"id.verification.camera.access.problems": "Probleme haben?",
|
||||
"id.verification.camera.access.skip": "Überspringen und laden Sie stattdessen Bilddateien hoch",
|
||||
"id.verification.camera.access.success": "Sieht so aus, als ob Ihre Kamera funktioniert und bereit ist.",
|
||||
"id.verification.camera.access.failure": "Anscheinend können wir nicht auf Ihre Kamera zugreifen. Sie müssen Bilddateien von Ihnen und Ihren Lichtbildausweis hochladen.",
|
||||
"id.verification.camera.access.failure.temporary": "Anscheinend können wir nicht auf Ihre Kamera zugreifen. Bitte vergewissern Sie sich, dass Ihre Webcam verbunden ist und Sie Ihrem Browser den Zugriff darauf erlaubt haben.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "So aktivieren Sie den Kamerazugriff in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Öffnen Sie Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigieren Sie zu Mehr > Einstellungen.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "Für Windows: Alt+F, Alt+E oder F10 gefolgt von der Leertaste",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "Für Mac: Befehl+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Wählen Sie auf der Registerkarte „Datenschutz und Sicherheit“ „Site-Einstellungen“ und dann „Kamera“.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Suchen Sie unter „Blockiert“ nach „edx.org“ und wählen Sie es aus.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "Aktualisieren Sie im Abschnitt „Berechtigungen“ die Kameraberechtigungen auf „Zulassen“.",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "So aktivieren Sie den Kamerazugriff im Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Öffnen Sie den Flash Player-Einstellungsmanager, indem Sie zu Windows-Einstellungen > Systemsteuerung > Flash Player navigieren.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Wählen Sie die Registerkarte „Kamera und Mikrofon“ und dann die Schaltfläche „Kamera- und Mikrofoneinstellungen nach Standort“.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Wählen Sie „edx.org“ aus der Liste der Websites und ändern Sie die Berechtigungen, indem Sie im Dropdown-Menü „Zulassen“ auswählen.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "So aktivieren Sie den Kamerazugriff in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Öffnen Sie Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Geben Sie „about:preferences“ in die URL-Leiste ein.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Wählen Sie die Registerkarte „Datenschutz und Sicherheit“ und navigieren Sie zum Abschnitt „Berechtigungen“.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Wählen Sie neben „Kamera“ die Schaltfläche „Einstellungen…“ aus.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "Geben Sie in der Suchleiste „edx.org“ ein.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "Wählen Sie in der Statusspalte für „edx.org“ im Drop-down-Menü „Zulassen“ aus.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Wählen Sie „Änderungen speichern“.",
|
||||
"id.verification.camera.access.failure.temporary.safari": "So aktivieren Sie den Kamerazugriff in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Safari öffnen.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Klicken Sie auf das Menü der Safari-App und wählen Sie dann „Einstellungen“. Sie können auch Command+ als Tastenkürzel verwenden.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Wählen Sie die Registerkarte „Websites“ und dann „Kamera“.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Wählen Sie „edx.org“ und ändern Sie die Kameraberechtigungen auf „Zulassen“.",
|
||||
"id.verification.camera.access.failure.unsupported": "Anscheinend unterstützt Ihr Browser den Kamerazugriff nicht.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "Der Chrome-Browser unterstützt derzeit keinen Kamerazugriff auf iOS-Geräten wie iPhones und iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Bitte verwenden Sie einen anderen Browser, um die Identitätsprüfung abzuschließen.",
|
||||
"id.verification.photo.tips.title": "Hilfreiche Fototipps",
|
||||
"id.verification.photo.tips.description": "Als Nächstes müssen Sie ein Foto von Ihrem Gesicht machen. Bitte lesen Sie die hilfreichen Tipps unten.",
|
||||
"id.verification.photo.tips.list.title": "Foto-Tipps",
|
||||
"id.verification.photo.tips.list.description": "Um ein erfolgreiches Bild zu machen, stell sicher dass:",
|
||||
"id.verification.photo.tips.list.well.lit": "Dein Gesicht ist gut beleuchtet.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Dein ganzes Gesicht passt in den Rahmen.",
|
||||
"id.verification.portrait.photo.title.camera": "Machen Sie ein Foto von sich",
|
||||
"id.verification.portrait.photo.instructions.camera": "Wenn sich Ihr Gesicht in Position befindet, verwenden Sie die Schaltfläche „Foto aufnehmen“ unten, um Ihr Foto aufzunehmen.",
|
||||
"id.verification.camera.help.sight.question": "Was ist, wenn ich das Kamerabild nicht sehen kann oder wenn ich mein Foto nicht sehen kann, um festzustellen, welche Seite sichtbar ist?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "Möglicherweise können Sie das Bildaufnahmeverfahren ohne Hilfe abschließen, aber es kann einige Übermittlungsversuche dauern, bis die Kamera richtig positioniert ist. Die optimale Kamerapositionierung variiert mit jedem Computer, aber im Allgemeinen ist die beste Position für einen Kopfschuss ungefähr 30 bis 45 Zentimeter von der Kamera entfernt, wobei Ihr Kopf relativ zum Computerbildschirm zentriert sein sollte. Wenn die von Ihnen eingereichten Fotos abgelehnt werden, versuchen Sie, den Computer oder die Kamera auszurichten, um den Beleuchtungswinkel zu ändern.",
|
||||
"id.verification.camera.help.sight.answer.id": "Möglicherweise können Sie den Bildaufnahmevorgang ohne Hilfe abschließen, aber es kann einige Übermittlungsversuche dauern, bis die Kamera richtig positioniert ist. Die optimale Kamerapositionierung variiert mit jedem Computer, aber im Allgemeinen ist die beste Position für ein Foto eines Personalausweises 20–30 cm von der Kamera entfernt, wobei der Personalausweis relativ zur Kamera zentriert sein sollte. Wenn die eingereichten Fotos abgelehnt werden, versuchen Sie, den Computer oder die Kamera auszurichten, um den Beleuchtungswinkel zu ändern. Der häufigste Ablehnungsgrund ist die Unfähigkeit, den Text auf dem Ausweis zu lesen.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "Was, wenn ich Schwierigkeiten habe, meinen Kopf in der richtigen Position zur Kamera zu halten?",
|
||||
"id.verification.camera.help.difficulty.question.id": "Was, wenn ich Schwierigkeiten habe, meinen Ausweis in der richtigen Position zur Kamera zu halten?",
|
||||
"id.verification.camera.help.difficulty.answer": "Wenn Sie Hilfe beim Aufnehmen eines Fotos zum Einreichen benötigen, wenden Sie sich für weitere Vorschläge an den {siteName}-Support.",
|
||||
"id.verification.id.photo.unclear.question": "Ist Ihr Ausweisbild unscharf oder zu verschwommen?",
|
||||
"id.verification.id.tips.title": "Hilfreiche Tipps zum Personalausweis",
|
||||
"id.verification.id.tips.description": "Als nächstes müssen Sie ein Foto eines gültigen Personalausweises machen, der Ihren vollständigen Namen und ein Foto enthält, z. B. einen Führerschein oder Reisepass. Bitte halten Sie Ihren Ausweis bereit.",
|
||||
"id.verification.id.tips.list.well.lit": "Ihr Ausweis ist gut beleuchtet.",
|
||||
"id.verification.id.tips.list.clear": "Stellen Sie sicher, dass Sie Ihr Foto sehen und Ihren Namen deutlich lesen können.",
|
||||
"id.verification.id.photo.title.camera": "Machen Sie ein Foto Ihres Personalausweises",
|
||||
"id.verification.id.photo.title.upload": "Laden Sie ein Foto Ihres Personalausweises hoch",
|
||||
"id.verification.id.photo.preview.alt": "Vorschau des Lichtbildausweises.",
|
||||
"id.verification.id.photo.instructions.camera": "Wenn Ihr Ausweis in Position ist, verwenden Sie die Schaltfläche „Foto aufnehmen“ unten, um Ihr Foto aufzunehmen. Bitte verwenden Sie einen Reisepass, Führerschein oder einen anderen Ausweis, der Ihren vollständigen Namen und ein Bild Ihres Gesichts enthält.",
|
||||
"id.verification.id.photo.instructions.upload": "Bitte laden Sie ein Foto Ihres Personalausweises hoch. Stellen Sie sicher, dass der gesamte Ausweis in den Rahmen passt und gut beleuchtet ist. Die Dateigröße muss unter 10 MB liegen. Unterstützte Formate:",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "Die ausgewählte Datei ist kein unterstützter Bildtyp. Bitte wählen Sie aus folgenden Formaten:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "Die ausgewählte Datei ist zu groß. Bitte versuchen Sie es erneut mit einer Datei, die kleiner als 10 MB ist.",
|
||||
"id.verification.name.check.title": "Überprüfen Sie Ihren Namen",
|
||||
"id.verification.name.check.instructions": "Stimmt der Name unten mit dem Namen auf Ihrem Lichtbildausweis überein? Wenn nicht, aktualisieren Sie den Namen unten, damit er mit Ihrem Lichtbildausweis übereinstimmt.",
|
||||
"id.verification.name.check.mismatch.information": "Wenn der untenstehende Name nicht mit Ihrem Lichtbildausweis übereinstimmt, wird Ihre Identitätsprüfung verweigert.",
|
||||
"id.verification.name.error": "Bitte geben Sie Ihren Namen so ein, wie er auf Ihrem Lichtbildausweis steht.",
|
||||
"id.verification.account.name.warning.prefix": "Bitte beachten Sie:",
|
||||
"id.verification.account.name.settings": "Benutzerkonto-Einstellungen",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Lichtbild Ihres Ausweises einzureichen.",
|
||||
"id.verification.review.title": "Fotos kontrollieren",
|
||||
"id.verification.review.description": "Stellen Sie sich sicher, dass wir ihre Identität mit die Informationen und Fotos die Sie uns zur verfügung gestellt haben bestätigen können.",
|
||||
"id.verification.review.portrait.label": "Ihr Porträt",
|
||||
"id.verification.review.portrait.alt": "Ein Foto Ihres Gesichts soll eingereicht werden.",
|
||||
"id.verification.review.portrait.retake": "Porträtfoto wiederholen",
|
||||
"id.verification.review.id.label": "Ihr Personalausweis",
|
||||
"id.verification.review.id.alt": "Lichtbild Ihres Personalausweises einzureichen.",
|
||||
"id.verification.review.id.retake": "Passfoto wiederholen",
|
||||
"id.verification.review.confirm": "Einreichen",
|
||||
"id.verification.submission.alert.error.face": "Ein Foto Ihres Gesichts ist erforderlich. Bitte nehmen Sie Ihr Porträtfoto erneut auf.",
|
||||
"id.verification.submission.alert.error.id": "Ein Foto Ihres Personalausweises ist erforderlich. Bitte nehmen Sie Ihr Ausweisfoto erneut auf.",
|
||||
"id.verification.submission.alert.error.name": "Ein gültiger Kontoname ist erforderlich. Bitte aktualisieren Sie Ihren Kontonamen so, dass er mit dem Namen auf Ihrem Ausweis übereinstimmt.",
|
||||
"id.verification.submission.alert.error.unsupported": "Mindestens eine der von Ihnen hochgeladenen Dateien weist ein nicht unterstütztes Format auf. Bitte wählen Sie aus Folgendem:",
|
||||
"id.verification.review.error": "{siteName} Support-Seite",
|
||||
"id.verification.submitted.title": "Identitätsüberprüfung läuft",
|
||||
"id.verification.submitted.text": "Wir haben Ihre Informationen erhalten und überprüfen Ihre Identität. Sie werden benachrichtigt, wenn der Verifizierungsprozess abgeschlossen ist (normalerweise innerhalb von 5 Tagen). In der Zwischenzeit können Sie weiterhin auf alle verfügbaren Kursinhalte zugreifen.",
|
||||
"id.verification.return.dashboard": "Zurück zu \"Meine Kurse\"",
|
||||
"id.verification.return.course": "Zurück zum Kurs",
|
||||
"id.verification.return.generic": "Zurückkehren",
|
||||
"id.verification.photo.upload.help.title": "Laden Sie stattdessen ein Foto hoch",
|
||||
"id.verification.photo.camera.help.title": "Verwenden Sie stattdessen Ihre Kamera",
|
||||
"id.verification.photo.upload.help.text": "Wenn Sie Probleme mit der obigen Fotoaufnahme haben, können Sie stattdessen ein Foto hochladen. Um ein Foto hochzuladen, klicken Sie auf die Schaltfläche unten.",
|
||||
"id.verification.photo.camera.help.text": "Wenn Sie oben Probleme beim Hochladen eines Fotos haben, können Sie stattdessen Ihre Kamera verwenden. Um Ihre Kamera zu verwenden, klicken Sie auf die Schaltfläche unten.",
|
||||
"id.verification.upload.help.button": "Wechseln Sie in den Upload-Modus",
|
||||
"id.verification.camera.help.button": "Wechseln Sie in den Kameramodus",
|
||||
"id.verification.request.camera.access.instructions": "Um ein Foto mit Ihrer Webcam aufzunehmen, erhalten Sie möglicherweise eine Browser-Eingabeaufforderung für den Zugriff auf Ihre Kamera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Ihre Kontoeinstellungen werden von {managerTitle} verwaltet. Wenn der Name auf Ihrem Lichtbildausweis nicht mit dem Namen in Ihrem Konto übereinstimmt, wenden Sie sich bitte an Ihren {profileDataManager}-Administrator oder {support}, um Hilfe zu erhalten, bevor Sie den Fotoverifizierungsprozess abschließen.",
|
||||
"id.verification.requirements.card.device.text": "Sie benötigen ein Gerät mit Kamera. Wenn Sie eine Browser-Eingabeaufforderung für den Zugriff auf Ihre Kamera erhalten, stellen Sie bitte sicher, dass Sie auf {allow} klicken.",
|
||||
"id.verification.account.name.summary.alert": "Ihre Kontoeinstellungen werden von {managerTitle} verwaltet. Wenn der Name auf Ihrem Lichtbildausweis nicht mit dem Namen auf Ihrem Konto übereinstimmt, wenden Sie sich bitte an Ihren {profileDataManager}-Administrator oder {support}, um Hilfe zu erhalten.",
|
||||
"idv.submission.alert.error": "Beim Versuch, die ID-Bestätigung einzureichen, ist ein technischer Fehler aufgetreten. Dies könnte ein vorübergehendes Problem sein, versuchen Sie es in ein paar Minuten erneut. Wenn das Problem weiterhin besteht, rufen Sie bitte {support_link} auf, um Hilfe zu erhalten.",
|
||||
"id.verification.account.name.edit": "{sr} bearbeiten",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -55,6 +55,16 @@
|
||||
"account.settings.field.dob": "Año de nacimiento",
|
||||
"account.settings.field.dob.empty": "Agregar año de nacimiento",
|
||||
"account.settings.field.year_of_birth.options.empty": "Selecciona año de nacimiento",
|
||||
"account.settings.field.dob.month": "Mes",
|
||||
"account.settings.field.dob.year": "Año",
|
||||
"account.settings.field.month.year.default": "Seleccionar mes",
|
||||
"account.settings.field.dob.year.default": "Seleccionar año",
|
||||
"account.settings.field.dob.form.button": "Por favor confirme su fecha de nacimiento",
|
||||
"account.settings.field.dob.form.title": "Ingresar mes y año de nacimiento",
|
||||
"account.settings.field.dob.form.help.text": "Solicitamos información sobre el mes y el año de nacimiento para ayudarnos a cumplir con nuestras obligaciones legales.",
|
||||
"account.settings.field.dob.form.success": "Gracias por ingresar su información.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Seleccione un mes de nacimiento",
|
||||
"account.settingsfield.dob.error.general": "Ha ocurrido un error técnico. Por favor intentalo de nuevo.",
|
||||
"account.settings.field.country": "País",
|
||||
"account.settings.field.country.empty": "Agregar país",
|
||||
"account.settings.field.country.options.empty": "Seleccionar un país",
|
||||
@@ -104,30 +114,13 @@
|
||||
"account.settings.editable.field.action.edit": "Editar",
|
||||
"account.settings.static.field.empty": "No hay valor establecido. Contacte su administrador {enterprise} para hacer cambios.",
|
||||
"account.settings.static.field.empty.no.admin": "No hay valor establecido.",
|
||||
"notification.preferences.notifications.label": "Notificaciones",
|
||||
"account.settings.field.name.certificate.select": "En caso de ser seleccionado, este nombre aparecerá en tus certificados y registros públicos. ",
|
||||
"account.settings.field.name.modal.certificate.title": "Escoge un nombre de preferencia para tus certificados y registros públicos.",
|
||||
"account.settings.field.name.modal.certificate.select": "Selecciona un nombre",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Nombre completo",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Nombre verificado",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Escoge un nombre",
|
||||
"account.settings.coaching.consent.welcome.header": "Empecemos",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Estamos aquí para ustede desde el inicio hasta el final",
|
||||
"account.settings.coaching.consent.description": "Los programas de MicroBachelors incluyen entrenamiento que se enfoca en su carrera, educación y cómo logrará resultados a través de la comunicación individual con un profesional experimentado. Si está interesado, proporcione la información a continuación y haga clic en \"Enviar\", y nuestro socio asesor se comunicará con usted por correo electrónico y / o mensaje de texto para ayudarlo a avanzar. Los términos y Condiciones aplican.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* Los servicios de entrenamiento se incluyen sin costo adicional para los alumnos con números de teléfono de EE. UU. El entrenamiento incluye mensajes de texto recurrentes. Se pueden aplicar tarifas por mensajes y datos. Envía STOP para cancelar la suscripción.",
|
||||
"account.settings.coaching.consent.accept-coaching": "Registrarse para coaching",
|
||||
"account.settings.coaching.consent.decline-coaching": "Prefiero no ser contactado con servicios de coaching gratuitos.",
|
||||
"account.settings.coaching.consent.label.name": "Por favor confirme su nombre",
|
||||
"account.settings.coaching.consent.label.phone-number": "Ingrese su número de teléfono móvil",
|
||||
"account.settings.coaching.consent.success.header": "¡Éxito!",
|
||||
"account.settings.coaching.consent.success.message": "Estás inscrito para coaching. Puedes esperar un mensaje por correo electrónico o SMS en los próximos días.",
|
||||
"account.settings.coaching.consent.success.continue": "Iniciar mi curso",
|
||||
"account.settings.coaching.managed.support": "soporte",
|
||||
"account.settings.coaching.managed.alert": "{ManagerTitle} administra su Nombre. Póngase en contacto con su administrador para obtener ayuda.",
|
||||
"account.settings.field.phone_number": "Teléfono",
|
||||
"account.settings.field.phone_number.empty": "Añadir un número de teléfono",
|
||||
"account.settings.field.coaching_consent": "Consentimiento de coaching",
|
||||
"account.settings.field.coaching_consent.tooltip": "Los programas de MicroBachelors incluyen entrenamiento basado en mensajes de texto que lo ayuda a emparejar experiencias educativas con sus objetivos profesionales a través de asesoramiento personalizado. Los servicios de entrenamiento se incluyen sin costo adicional y están disponibles para estudiantes con números de teléfono móvil de EE. UU. Se aplican tarifas de mensajería estándar. Envíe \"STOP\" en cualquier momento para cancelar la suscripción a los mensajes.",
|
||||
"account.settings.field.coaching_consent.error": "Se requiere un número de teléfono válido de EE. UU. Para optar por el coaching",
|
||||
"account.settings.delete.account.before.proceeding": "Antes de continuar, por favor {actionLink}.",
|
||||
"account.settings.delete.account.header": "Eliminar mi cuenta",
|
||||
"account.settings.delete.account.subheader": "¡Sentimos que te vayas!",
|
||||
@@ -193,7 +186,7 @@
|
||||
"account.settings.name.change.warning.one": "Atención: esta acción actualizará el nombre que aparece en todos los certificados obtenidos a través de esta cuenta en el pasado y en aquellos en que actualmente estás obteniendo o que adquirirás en el futuro.",
|
||||
"account.settings.name.change.warning.two": "Esta acción no podrá revertirse sin antes verificar tu identidad.",
|
||||
"account.settings.name.change.id.name.label": "Ingrese su nombre tal como aparece en su tarjeta de identificación vigente de estudiante, trabajo o emitida por el gobierno.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.id.name.placeholder": "Ingrese el nombre en su identificación con foto",
|
||||
"account.settings.name.change.error.valid.name": "Por favor ingresa un nombre valido.",
|
||||
"account.settings.name.change.error.general": "Ha ocurrido un error técnico. Por favor intentalo de nuevo.",
|
||||
"account.settings.name.change.continue": "Continuar",
|
||||
@@ -209,6 +202,7 @@
|
||||
"account.settings.sso.account.disconnect.error": "Hubo un problema al desconectar esta Cuenta. Si el problema persiste, contacte soporte.",
|
||||
"account.settings.sso.unlink.account": "Desvincular la cuenta de {accountName} ",
|
||||
"account.settings.sso.no.providers": "No se pueden vincular cuentas en este momento.",
|
||||
"account.page.title": "Cuenta | {siteName}",
|
||||
"id.verification.access.blocked.denied": "No podemos verificar tu identidad en este momento. Si aún no has activado tu cuenta, comprueba en tu carpeta de correo no deseado el correo de activación de {email}.",
|
||||
"id.verification.next": "Siguiente",
|
||||
"id.verification.support": "soporte",
|
||||
@@ -309,7 +303,7 @@
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "El archivo que has seleccionado no cumple con el tipo de imágenes soportadas. Por favor escoge entre los siguientes formatos:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "El archivo que has seleccionado es demasiado grande. Vuelve a intentarlo con un archivo de menos de 10 MB.",
|
||||
"id.verification.name.check.title": "Revisa nuevamente tu nombre",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.instructions": "¿El nombre a continuación coincide con el nombre en su identificación con foto? De lo contrario, actualice el nombre a continuación para que coincida con su identificación con foto.",
|
||||
"id.verification.name.check.mismatch.information": "Si el nombre a continuación no coincide con su identificación con foto, se denegará su verificación de identidad.",
|
||||
"id.verification.name.error": "Ingrese su nombre tal como aparece en su identificación con foto.",
|
||||
"id.verification.account.name.warning.prefix": "Ten en cuenta:",
|
||||
@@ -346,5 +340,15 @@
|
||||
"id.verification.requirements.card.device.text": "Necesitas un dispositivo que tenga una cámara. Si has recibido un aviso del navegador para habilitar acceso a tu cámara, por favor asegúrate de seleccionar [allow].",
|
||||
"id.verification.account.name.summary.alert": "La configuración de tu perfil es administrada por {managerTitle}. Por lo tanto si el nombre en tu ID de foto coincide con tu nombre de cuenta por favor ponte en contacto con tu administrador de {profileDataManager} o con {soporte} para solicitar ayuda.",
|
||||
"idv.submission.alert.error": "\n Se produjo un error técnico al intentar enviar la verificación de ID.\n Es posible que sea una cuestión temporal, así que inténtalo de nuevo en unos minutos.\n Si el problema continúa, dirígete a {support_link} para obtener ayuda.\n ",
|
||||
"id.verification.account.name.edit": "Editar {sr}"
|
||||
"id.verification.account.name.edit": "Editar {sr}",
|
||||
"notification.preference.heading": "Notificaciones",
|
||||
"notification.preference.app.title": "{ clave, seleccionar, discusión {Debates} trabajo del curso {Trabajo del curso} otro {{clave}} }",
|
||||
"notification.preference.title": "{ text, select, core {Notificaciones principales} newDiscussionPost {Nuevas publicaciones de discusión} newQuestionPost {Nuevas publicaciones de preguntas} other { {text} } }",
|
||||
"notification.preference.type.label": "Tipo",
|
||||
"notification.preference.web,label": "Sitio Web",
|
||||
"notification.preference.help.email": "Correo electrónico",
|
||||
"notification.preference.help.push": "Empujar",
|
||||
"notification.preference.load.more.courses": "Cargar más cursos",
|
||||
"notification.preference.guide.link": "como se detalla aquí",
|
||||
"notification.preference.guide.body": "Las notificaciones para determinadas actividades están habilitadas de forma predeterminada,"
|
||||
}
|
||||
354
src/i18n/messages/fa_IR.json
Normal file
354
src/i18n/messages/fa_IR.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "حساب کاربری {provider} که برگزیدید قبلاً به حساب کاربری دیگر {siteName} پیوند داده شدهاست.",
|
||||
"account.settings.message.managed.settings": "تنظیمات پرونده کاربری شما بهدست {managerTitle} مدیریت میشود. برای راهنمایی با مدیر یا {support} خود تماس بگیرید.",
|
||||
"account.settings.message.managed.settings.support": "پشتیبانی",
|
||||
"account.settings.page.heading": "تنظیمات حساب کاربری",
|
||||
"account.settings.loading.message": "در حال بارگیری ...",
|
||||
"account.settings.loading.error": "خطا: {error}",
|
||||
"account.settings.banner.beta.language": "شما زبان خود را روی {beta_language} تنظیم کردهاید که در حال حاضر به طور کامل ترجمه نشده است. با عضویت در انجمن Transifex و افزودن ترجمههایی از انگلیسی برای افرادی که به {beta_language} تکلم میکنند، میتوانید در ترجمه کامل این زبان به ما کمک کنید.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "بازگشت به {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "به ترجمه به {beta_language} کمک کنید",
|
||||
"account.settings.section.account.information": "اطلاعات حساب کاربری",
|
||||
"account.settings.section.account.information.description": "این تنظیمات شامل اطلاعات اولیه دربارۀ حساب کاربری شما است",
|
||||
"account.settings.section.profile.information": "اطلاعات پرونده کاربری ",
|
||||
"account.settings.section.demographics.information": "اطلاعات اختیاری ",
|
||||
"account.settings.section.site.preferences": "تنظیمات وبگاه",
|
||||
"account.settings.section.linked.accounts": "حسابهای کاربری مرتبط",
|
||||
"account.settings.section.linked.accounts.description": "میتوانید هویت خود را به حسابهای کاربری پیوند دهید تا ورود به سامانه {siteName} آسانتر شود.",
|
||||
"account.settings.field.username": "نام کاربری",
|
||||
"account.settings.field.username.help.text": "نامی که شما را با آن نام در {siteName} میشناسند. شما نمیتوانید نام کاربری خود را تغییر دهید.",
|
||||
"account.settings.field.full.name": "نام و نام خانوادگی",
|
||||
"account.settings.field.full.name.empty": "افزودن نام",
|
||||
"account.settings.field.full.name.help.text": "نامی که برای تأیید شناسه از آن استفاده شده و در گواهیهای شما نشان داده میشود.",
|
||||
"account.settings.field.full.name.help.text.default": "نامی که در پرونده کاربری قرار میگیرد.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "این نام برای نمایش در گواهیها و سوابق عمومی شما انتخاب شده است.",
|
||||
"account.settings.field.name.verified": "نام تاییدشده",
|
||||
"account.settings.field.name.verified.help.text.verified": "این نام از طریق تصویر کارت شناسایی تایید شد.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "این نام توسط ناظر تأیید شدهاست.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "این نام با شناسه عکس تأیید شده است و برای نمایش در گواهیها و سوابق عمومی شما انتخاب شده است.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "این نام از طریق نظارت تأیید شده است و برای نمایش در گواهیها و سوابق عمومی شما انتخاب شده است.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "تأیید ارسال شد. این فرایند معمولاً 48 ساعت یا کمتر طول میکشد. نام تأییدشده اکنون قابل تغییر نیست.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "آزمون محافظتشده شما ارسال شد. نام تأییدشده در حال حاضر قابل تغییر نیست. لطفاً 2-5 روز دیگر دوباره بررسی کنید.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "وقتی تأیید هویت با موفقیت انجام شود، این نام در گواهیها و سوابق عمومی شما ظاهر میشود. نام تأییدشده اکنون قابل تغییر نیست.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "هنگامی که آزمون محافظتشده شما بررسی شد، این نام در گواهی و سوابق عمومی شما درج خواهد شد. نام تأییدشده در حال حاضر قابل تغییر نیست.",
|
||||
"account.settings.field.name.verified.verification.help": "نام خود را همانگونه که در کارت شناسایی دانشجویی، کار یا کارت شناسایی معتبر منقضی نشده، درج شده است وارد کنید.",
|
||||
"account.settings.field.full.name.help.text.submitted": "تأیید ارسال شد. این فرایند معمولاً 48 ساعت یا کمتر طول میکشد. نام تأییدشده اکنون قابل تغییر نیست.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "آزمون محافظتشده شما ارسال شد. نام کامل در حال حاضر قابل تغییر نیست. لطفاً 2-5 روز دیگر دوباره بررسی کنید.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "وقتی تأیید هویت با موفقیت انجام شود، این نام در گواهیها و سوابق عمومی شما ظاهر خواهد شد. نام کامل اکنون قابل تغییر نیست.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "هنگامی که آزمون محافظتشده شما بررسی شد، این نام در گواهیها و سوابق عمومی شما درج خواهد شد. نام کامل در حال حاضر قابل تغییر نیست.",
|
||||
"account.settings.field.name.verified.success.message": "درخواست تأیید هویت شما با موفقیت تکمیل شد. اکنون نامی را که ترجیح میدهید در گواهیها و سوابق عمومی شما نمایش داده شود انتخاب کنید.",
|
||||
"account.settings.field.name.verified.success.message.header": "درخواست تغییر نام شما تکمیل شد!",
|
||||
"account.settings.field.name.verified.failure.message": "آخرین تلاش شما برای تأیید هویت انجام نشد. تنظیمات حساب کاربری مرتبط بازیابی شده است.",
|
||||
"account.settings.field.name.verified.failure.message.header": "ما نتوانستیم هویت شما را تأیید کنیم.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "درباره تأیید هویت بیشتر بدانید",
|
||||
"account.settings.field.name.verified.submitted.message": "درخواست تأیید هویت شما ارسال شد و معمولاً بین 24 تا 48 ساعت طول می کشد تا تکمیل شود.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "هنگامی که درخواست شما تأیید شد، نام روزآمد شما در همه گواهیهای مرتبط و سوابق عمومی ظاهر خواهد شد.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "درخواست تغییر نام شما تقریباً تکمیل شدهاست!",
|
||||
"account.settings.field.email": "نشانی رایانامه ( ورود به سامانه)",
|
||||
"account.settings.field.email.empty": "افزودن نشانی رایانامه",
|
||||
"account.settings.field.email.confirmation": "ما پیام تأییدی به {value} ارسال کردهایم. برای روزآمدسازی نشانی رایانامه خود، روی پیوند موجود در پیام کلیک کنید.",
|
||||
"account.settings.field.email.help.text": "پیامهایی از سوی {siteName} و تیمهای دوره آموزشی در این آدرس دریافت میکنید.",
|
||||
"account.settings.field.secondary.email": "نشانی رایانامه برای بازیابی",
|
||||
"account.settings.field.secondary.email.empty": "افزودن رایانامه بازیابی",
|
||||
"account.settings.field.secondary.email.confirmation": "یک رایانامه تأیید به {value} ارسال کردیم. بر روی پیوندی که در این پیام است کلیک کنید تا بتوانید رایانامه بازیابی روزآمد شود. ",
|
||||
"account.settings.email.field.confirmation.header": "در انتظار تأیید",
|
||||
"account.settings.field.dob": "سال تولد",
|
||||
"account.settings.field.dob.empty": "افزودن سال تولد",
|
||||
"account.settings.field.year_of_birth.options.empty": "انتخاب سال تولد",
|
||||
"account.settings.field.dob.month": "ماه",
|
||||
"account.settings.field.dob.year": "سال",
|
||||
"account.settings.field.month.year.default": "ماه را انتخاب کنید",
|
||||
"account.settings.field.dob.year.default": "سال را انتخاب کنید",
|
||||
"account.settings.field.dob.form.button": "لطفا تاریخ تولد را وارد کنید",
|
||||
"account.settings.field.dob.form.title": "ماه و سال تولد خود را وارد کنید",
|
||||
"account.settings.field.dob.form.help.text": "ما اطلاعات ماه و سال تولد را درخواست می کنیم تا به ما در انجام تعهدات قانونی خود کمک کند.",
|
||||
"account.settings.field.dob.form.success": "از اینکه اطلاعات خود را وارد کردید متشکرم",
|
||||
"account.settings.field.month_of_birth.options.empty": "ماه تولد خود را برگزینید",
|
||||
"account.settingsfield.dob.error.general": "مشکل فنی رخ داده است. دوباره تلاش کنید.",
|
||||
"account.settings.field.country": "کشور",
|
||||
"account.settings.field.country.empty": "افزودن کشور",
|
||||
"account.settings.field.country.options.empty": "انتخاب کشور",
|
||||
"account.settings.field.state": "ایالت",
|
||||
"account.settings.field.state.empty": "ایالت را اضافه کنید",
|
||||
"account.settings.field.state.options.empty": "یک ایالت انتخاب کنید",
|
||||
"account.settings.field.site.language": "زبان وبگاه",
|
||||
"account.settings.field.site.language.help.text": "زبانی که در وبگاه استفاده میشود. این سایت در حال حاضر به زبانهای محدودی در دسترس است. ",
|
||||
"account.settings.field.education": "تحصیلات",
|
||||
"account.settings.field.education.empty": "افزودن سطح تحصیلات",
|
||||
"account.settings.field.education.levels.empty": "انتخاب سطح تحصیلات",
|
||||
"account.settings.field.education.levels.p": "دکترا",
|
||||
"account.settings.field.education.levels.m": "کارشناسی ارشد یا مدرک حرفهای",
|
||||
"account.settings.field.education.levels.b": "مدرک کارشناسی",
|
||||
"account.settings.field.education.levels.a": "مدرک کاردانی",
|
||||
"account.settings.field.education.levels.hs": "متوسطه/دبیرستان",
|
||||
"account.settings.field.education.levels.jhs": "مدرسه متوسطه دوره اول/ راهنمایی",
|
||||
"account.settings.field.education.levels.el": "مدرسه ابتدایی",
|
||||
"account.settings.field.education.levels.none": "بدون تحصیلات رسمی",
|
||||
"account.settings.field.education.levels.o": "تحصیلات متفرقه",
|
||||
"account.settings.field.gender": "جنسیت",
|
||||
"account.settings.field.gender.empty": "افزودن جنسیت",
|
||||
"account.settings.field.gender.options.empty": "جنسیت را انتخاب کنید",
|
||||
"account.settings.field.gender.options.f": "بانو",
|
||||
"account.settings.field.gender.options.m": "آقا",
|
||||
"account.settings.field.gender.options.o": "سایر",
|
||||
"account.settings.field.language.proficiencies": "زبانی که با آن سخن میگویید",
|
||||
"account.settings.field.language.proficiencies.empty": "افزودن زبان محاوره ",
|
||||
"account.settings.field.language_proficiencies.options.empty": "انتخاب زبان",
|
||||
"account.settings.field.time.zone": "منطقه زمانی",
|
||||
"account.settings.field.time.zone.empty": "تنظیم منطقه زمانی",
|
||||
"account.settings.field.time.zone.description": "منطقه زمانی را برای نمایش زمان دورههای آموزشی انتخاب کنید. اگر منطقه زمانی را انتخاب نکنید، تاریخ دورههای آموزشی، شامل ضربالاجل تکالیف در مرورگر شما به زمان محلی مرورگر شما نمایش داده خواهد شد. ",
|
||||
"account.settings.field.time.zone.default": "پیشفرض (منطقۀ زمانی)",
|
||||
"account.settings.field.time.zone.all": "همه مناطق زمانی",
|
||||
"account.settings.field.time.zone.country": "مناطق زمانی کشور",
|
||||
"account.settings.section.social.media": "پیوندهای شبکههای اجتماعی",
|
||||
"account.settings.section.social.media.description": "در صورت تمایل، حساب های شخصی خود را به نمادهای رسانههای اجتماعی در پرونده کاربری {siteName} خود پیوند دهید.",
|
||||
"account.settings.field.social.platform.name.linkedin": "لینکداین",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "افزودن پرونده کاربری لینکدین",
|
||||
"account.settings.jump.nav.delete.account": "حذف حساب کاربری من",
|
||||
"account.settings.field.social.platform.name.twitter": "توییتر",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "افزودن پرونده کاربری توییتر ",
|
||||
"account.settings.field.social.platform.name.facebook": "فیسبوک",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "افزودن پرونده کاربری فیسبوک",
|
||||
"account.settings.editable.field.action.save": "ذخیره",
|
||||
"account.settings.editable.field.action.cancel": "لغو ",
|
||||
"account.settings.editable.field.action.edit": " ویرایش",
|
||||
"account.settings.static.field.empty": "مقداری برای آن تعیین نشده است. برای ایجاد تغییرات با مدیر {enterprise} خود تماس بگیرید.",
|
||||
"account.settings.static.field.empty.no.admin": "هیچ مقداری تنظیم نشده است.",
|
||||
"notification.preferences.notifications.label": "اعلانها",
|
||||
"account.settings.field.name.certificate.select": "اگر علامت زده شود، این نام در گواهیها و سوابق عمومی شما درج میشود.",
|
||||
"account.settings.field.name.modal.certificate.title": "نامی مرجح برای گواهیها و سوابق عمومی انتخاب کنید",
|
||||
"account.settings.field.name.modal.certificate.select": "یک نام انتخاب کنید",
|
||||
"account.settings.field.name.modal.certificate.option.full": "نام و نام خانوادگی",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "تغییر نام",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "انتخاب نام",
|
||||
"account.settings.delete.account.before.proceeding": "پیش از ادامه، لطفاً {actionLink}.",
|
||||
"account.settings.delete.account.header": "حذف حساب کاربری من",
|
||||
"account.settings.delete.account.subheader": "از رفتن شما متأسفیم. ",
|
||||
"account.settings.delete.account.text.1": "لطفا توجه کنید: حذف حساب کاربری و اطلاعات شخصی شما دائمی است و قابل واگرد نیست. {siteName} نمیتواند حساب کاربری شما یا دادههای حذفشده را بازیابی کند.",
|
||||
"account.settings.delete.account.text.2": "وقتی حساب کاربری شما حذف شد، نمیتوانید از آن برای شرکت در دورههای آموزشی {siteName} استفاده کنید.",
|
||||
"account.settings.delete.account.text.2.edX": "پس از حذف حساب کاربری، شما دیگر امکان شرکت در دورههای edX app، edx.org یا هر سایت دیگری که میزبان edX است ندارید. این شامل دسترسی به سامانه کارفرما یا دانشگاه شما به edx.org و دسترسی به سایتهای خصوصی ارائه شده توسط MIT Open Learning، آموزش اجرایی Wharton و دانشکده پزشکی هاروارد است.",
|
||||
"account.settings.delete.account.text.3.link": "برای چاپ یا بارگیری گواهی، این دستورالعملها را دنبال کنید",
|
||||
"account.settings.delete.account.text.warning": "هشدار: حذف حساب کاربری دائمی است. لطفا پیش از ادامه، مطالب بالا را با دقت مطالعه کنید. این اقدام قابل واگرد نیست و دیگر نمیتوانید از همان رایانامه در {siteName} استفاده کنید.",
|
||||
"account.settings.delete.account.text.change.instead": "آیا به جای حذف حساب کاربری مایلید نام یا گذرواژه یا نشانی رایانامه خود را تغییر دهید؟",
|
||||
"account.settings.delete.account.button": "حذف حساب کاربری من",
|
||||
"account.settings.delete.account.please.activate": "حساب کاربریتان را فعالسازی کنید",
|
||||
"account.settings.delete.account.please.confirm": "تایید حساب کاربری",
|
||||
"account.settings.delete.account.please.unlink": "حذف پیوند به حسابهای کاربری رسانههای اجتماعی",
|
||||
"account.settings.delete.account.modal.header": "آیا مطمئنید؟",
|
||||
"account.settings.delete.account.modal.text.1": "شما \"حذف حساب کاربری من\" را انتخاب کردید. حذف حساب کاربری و اطلاعات شخصی شما دائمی است و قابل بازگردانی نیست. {siteName} قادر به بازیابی حساب کاربری شما یا دادههای حذفشده نیست.",
|
||||
"account.settings.delete.account.modal.text.2": "اگر ادامه دهید، نمیتوانید از این حساب کاربری برای شرکت در دورههای آموزشی {siteName} استفاده کنید.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "در صورت ادامه، شما قادر نخواهید بود از حساب کاربری خود برای هیچ دورهای بر روی edX app، edx.org یا هر وبگاه دیگری که میزبان edX باشد استفاده کنید. این شامل دسترسی به edx.org از سامانه کارفرما یا دانشگاه یا دسترسی به سایتهای خصوصی که از طریق MIT Open Learning، آموزش اجرایی Wharton یا دانشکده پزشکی هاروارد ارائه میشوند نیز میشود. ",
|
||||
"account.settings.delete.account.modal.enter.password": "آیا هنوز هم مایل به ادامه مسیر و حذف حساب کاربری هستید؟ لطفا گذرواژه حساب کاربری را وارد کنید:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "بله، حذف شود",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "لغو",
|
||||
"account.settings.delete.account.error.unable.to.delete": "موفق به حذف حساب کاربری نشدیم",
|
||||
"account.settings.delete.account.error.no.password": "گذرواژه الزامی است",
|
||||
"account.settings.delete.account.error.invalid.password": "گذرواژه نادرست است",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "متاسفانه خطایی در فرایند انجام درخواست شما رخ داد. لطفا بعدا دوباره تلاش کنید. ",
|
||||
"account.settings.delete.account.modal.after.header": "متاسفیم که اینجا را ترک میکنید! به زودی حساب کاربری شما پاک خواهد شد. ",
|
||||
"account.settings.delete.account.modal.after.text": "حذف حساب کاربری از سامانه، شامل حذف نشانی رایانامه از فهرست، ممکن است چند هفته به طول بیانجامد. اگر میخواهید پیشاز این موعد از این فهرست خارج شوید، لطفا در پایین یکی از رایانامههایی که از ما دریافت کردهاید، لغو اشتراک را بزنید. ",
|
||||
"account.settings.delete.account.modal.after.button": "بستن",
|
||||
"account.settings.delete.account.text.3.edX": "همچنین ممکن است دسترسی به گواهیهای تأییدشده و سایر اعتبارنامههای برنامه مانند گواهیهای MicroMasters را از دست بدهید. میتوانید پیش از ادامه حذف، یک کپی از این موارد برای سوابق خود تهیه کنید. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "همچنین ممکن است دسترسی به گواهیهای تأییدشده و سایر اعتبارنامههای برنامه را از دست بدهید. این امکان را دارید که پیش از ادامه حذف، یک کپی از این موارد برای سوابق خود تهیه کنید.",
|
||||
"account.settings.message.demographics.service.issue": "خطایی در روند بازیابی یا ذخیره اطلاعات حساب کاربری شما رخ داد. لطفا بعدا دوباره تلاش کنید.",
|
||||
"account.settings.field.demographics.gender": "هویت جنسیتی",
|
||||
"account.settings.field.demographics.gender.empty": "افزودن هویت جنسیتی",
|
||||
"account.settings.field.demographics.gender.options.empty": "یک هویت جنسیتی انتخاب کنید",
|
||||
"account.settings.field.demographics.gender_description": "شرح هویت جنسیتی",
|
||||
"account.settings.field.demographics.gender_description.empty": "نگارش شرح",
|
||||
"account.settings.field.demographics.ethnicity": "نژاد/ هویت قومی",
|
||||
"account.settings.field.demographics.ethnicity.empty": "هویت نژاد/قومیت را بیفزایید",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "انتخاب همه موارد کاربردی",
|
||||
"account.settings.field.demographics.income": "درامد خانواده",
|
||||
"account.settings.field.demographics.income.empty": "افزودن درامد خانواده",
|
||||
"account.settings.field.demographics.income.options.empty": "انتخاب دامنه درامد خانواده",
|
||||
"account.settings.field.demographics.military_history": "وضعیت نظامی در آمریکا",
|
||||
"account.settings.field.demographics.military_history.empty": "افزودن وضعیت خدمت وظیفه",
|
||||
"account.settings.field.demographics.military_history.options.empty": "آخرین درجه نظامی شما کدامست؟",
|
||||
"account.settings.field.demographics.learner_education_level": "سظح تحصیلات شما",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "افزودن سطح تحصیلات",
|
||||
"account.settings.field.demographics.parent_education_level": "سطح تحصیلات والدین/سرپرست",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "افزودن سطح تحصیلات",
|
||||
"account.settings.field.demographics.education_level.options.empty": "انتخاب سطح تحصیلات",
|
||||
"account.settings.field.demographics.work_status": "وضعیت شغلی",
|
||||
"account.settings.field.demographics.work_status.empty": "افزودن وضعیت شغلی ",
|
||||
"account.settings.field.demographics.work_status.options.empty": "سمت اداری",
|
||||
"account.settings.field.demographics.work_status_description": "شرح وضعیت اشتغال",
|
||||
"account.settings.field.demographics.work_status_description.empty": "نگارش شرح",
|
||||
"account.settings.field.demographics.current_work_sector": "صنعت کار جاری",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "صنعت کار را بیفزایید",
|
||||
"account.settings.field.demographics.future_work_sector": "صنعت کار آینده",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "صنعت کار را بیفزایید",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "انتخاب صنعت کار",
|
||||
"account.settings.section.demographics.why": "چرا {siteName} این اطلاعات را جمع آوری میکند؟",
|
||||
"account.settings.name.change.title.id": "این تغییر نام نیاز به تأیید هویت دارد",
|
||||
"account.settings.name.change.title.begin": "پیش از آنکه ما آغاز کنیم",
|
||||
"account.settings.name.change.warning.one": "اخطار: این اقدام نامی را که در تمام گواهیهای گذشته شما و هر گواهی که در حال حاضر کسب میکنید یا در آینده کسب خواهید کرد روزآمد میکند.",
|
||||
"account.settings.name.change.warning.two": "این عمل بدون تأیید هویت شما قابل بازگشت نیست.",
|
||||
"account.settings.name.change.id.name.label": "نام خود را همانگونه که در کارت شناسایی دانشجویی، کار یا کارت شناسایی معتبر منقضی نشده، درج شده است وارد کنید.",
|
||||
"account.settings.name.change.id.name.placeholder": "نام خود را مطابق کارت شناسایی وارد کنید",
|
||||
"account.settings.name.change.error.valid.name": "لطفا نام معتبری وارد کنید.",
|
||||
"account.settings.name.change.error.general": "مشکل فنی رخ داده است. دوباره تلاش کنید.",
|
||||
"account.settings.name.change.continue": "ادامه",
|
||||
"account.settings.name.change.cancel": "لغو",
|
||||
"error.notfound.message": "صفحه مورد نظر شما در دسترس نیست یا خطایی در نشانی اینترنتی وجود دارد. لطفاً نشانی را بررسی کرده و دوباره امتحان کنید.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "پشتیبانی فنی",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "ما پیامی به {email} ارسال کردیم. برای بازتنظیم گذرواژه، روی پیوند موجود در پیام کلیک کنید. پیام را دریافت نکردید؟ با {technicalSupportLink} تماس بگیرید.",
|
||||
"account.settings.editable.field.password.reset.button": "بازتنظیم گذرواژه",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "درخواست پیشین شما هنوز در حال بررسی است. لطفا کمی بعد دوباره تلاش کنید. ",
|
||||
"account.settings.editable.field.password.reset.label": "گذرواژه",
|
||||
"account.settings.sso.link.account": "ورود با {neme}",
|
||||
"account.settings.sso.account.connected": "مرتبط شده",
|
||||
"account.settings.sso.account.disconnect.error": "مشکلی در قطع ارتباط این حساب کاربری وجود داشت. در صورت برطرفنشدن این مشکل، با پشتیبانی تماس بگیرید.",
|
||||
"account.settings.sso.unlink.account": "لغو پیوند حساب کاربری {name}",
|
||||
"account.settings.sso.no.providers": "هیچ حساب کاربری اکنون قابل پیوند نیست.",
|
||||
"account.page.title": "حساب کاربری | {siteName}",
|
||||
"id.verification.access.blocked.denied": "اکنون امکان تایید هویت شما را نداریم. اگر هنوز حساب کاربری خود را فعال نکردهاید، لطفاً پوشه هرزنامه خود را برای رایانامه فعالسازی از {email} بررسی کنید.",
|
||||
"id.verification.next": "بعدی",
|
||||
"id.verification.support": "پشتیبانی",
|
||||
"id.verification.example.card.alt": "نمونه کارت شناسایی معتبر با نام کامل و عکس.",
|
||||
"id.verification.requirements.title": "الزامات تأیید عکس",
|
||||
"id.verification.requirements.description": "برای تکمیل تأیید عکس، به موارد زیر نیاز دارید:",
|
||||
"id.verification.requirements.card.device.title": "وسیله همراه با دوربین",
|
||||
"id.verification.requirements.card.device.allow": "اجازهدادن",
|
||||
"id.verification.requirements.card.id.title": "تصویر کارت شناسایی",
|
||||
"id.verification.requirements.card.id.text": "شما به یک کارت شناسایی معتبر نیاز دارید که حاوی نام و عکس کامل شما باشد، مانند گواهینامه رانندگی یا پاسپورت.",
|
||||
"id.verification.privacy.title": "اطلاعات خصوصی",
|
||||
"id.verification.privacy.need.photo.question": "چرا {siteName} به عکس من نیاز دارد؟",
|
||||
"id.verification.privacy.need.photo.answer": "ما از تصاویر تأییدشدۀ شما برای احراز هویت و کسب اطمینان از اعتبار گواهی شما استفاده میکنیم.",
|
||||
"id.verification.privacy.do.with.photo.question": "{siteName} با این عکس چه میکند؟",
|
||||
"id.verification.privacy.do.with.photo.answer": "ما تصویر شما را بهطور ایمن رمزگذاری میکنیم و خدمات مجوز خود را برای بررسی ارسال میکنیم. پس از تکمیل فرآیند تأیید، عکس و اطلاعات شما در هیچ کجای {siteName} ذخیره یا قابل مشاهده نیست.",
|
||||
"id.verification.access.blocked.title": "احراز هویت",
|
||||
"id.verification.access.blocked.enrollment": "شما اکنون در دوره آموزشی ثبتنام نکردهاید که نیاز به تأیید هویت داشته باشد.",
|
||||
"id.verification.access.blocked.pending": "شما قبلاً اطلاعات تأیید خود را ارسال کردهاید. هنگامی که فرآیند تأیید کامل شد (معمولاً در مدت 5 روز)، پیامی را در پیشخوان خود خواهید دید.",
|
||||
"id.verification.photo.take": "گرفتن عکس",
|
||||
"id.verification.photo.retake": "دوباره عکس میگیرید؟",
|
||||
"id.verification.photo.enable.detection": "فعالسازی تشخیص چهره",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "اگر علامت زده شود، کادری در اطراف چهره شما ظاهر خواهدشد. اگر کادر آبی باشد، به این معناست که چهره شما بهوضوح دیده میشود. اگر چهره شما در وضعیت مناسبی قرار نگیرد یا غیرقابل تشخیص باشد، کادر قرمز خواهدشد.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "در صورت علامتزدن، کادری در اطراف چهره، روی کارت شناسایی شما ظاهر خواهد شد. اگر کادر آبی باشد، صورت بهوضوح دیده میشود. اگر چهره وضعیت مناسبی نداشته باشد یا قابل تشخیص نباشد، کادر قرمز میشود.",
|
||||
"id.verification.photo.feedback.correct": "چهره در موقعیت مناسبی است.",
|
||||
"id.verification.photo.feedback.two.faces": "بیش از یک چهره شناسایی شد.",
|
||||
"id.verification.photo.feedback.no.faces": "هیچ چهرهای تشخیص داده نشد.",
|
||||
"id.verification.photo.feedback.top.left": "موقعیت درست نیست. بالا سمت چپ.",
|
||||
"id.verification.photo.feedback.top.center": "موقعیت درست نیست. مرکز بالا",
|
||||
"id.verification.photo.feedback.top.right": "موقعیت درست نیست. بالا راست.",
|
||||
"id.verification.photo.feedback.center.left": "موقعیت درست نیست. مرکز چپ.",
|
||||
"id.verification.photo.feedback.center.center": "موقعیت درست نیست. خیلی نزدیک به دوربین است",
|
||||
"id.verification.photo.feedback.center.right": "موقعیت درست نیست. مرکز راست",
|
||||
"id.verification.photo.feedback.bottom.left": "موقعیت درست نیست. پایین سمت چپ.",
|
||||
"id.verification.photo.feedback.bottom.center": "موقعیت درست نیست. مرکز پایین ",
|
||||
"id.verification.photo.feedback.bottom.right": "موقعیت درست نیست. پایین راست.",
|
||||
"id.verification.camera.access.title": "مجوزهای دوربین",
|
||||
"id.verification.camera.access.title.success": "دسترسی به دوربین فعال است",
|
||||
"id.verification.camera.access.title.failed": "دسترسی به دوربین موفق نبود",
|
||||
"id.verification.camera.access.click.allow": "لطفاً مطمئن شوید که روی «مجاز است» کلیک کنید",
|
||||
"id.verification.camera.access.enable": "فعالسازی دوربین",
|
||||
"id.verification.camera.access.problems": "مشکلی دارید؟",
|
||||
"id.verification.camera.access.skip": "به جای آن پروندههای تصویری را رد کرده و بارگذاری کنید",
|
||||
"id.verification.camera.access.success": "به نظر میرسد دوربین شما آماده است و کار میکند.",
|
||||
"id.verification.camera.access.failure": "به نظر میرسد امکان دسترسی را به دوربین شما نداریم. شما باید پروندههای تصویری و عکس کارت شناسایی خود را بارگذاری کنید.",
|
||||
"id.verification.camera.access.failure.temporary": "به نظر میرسد ما نمیتوانیم به دوربین شما دسترسی پیدا کنیم. لطفاً بررسی کنید که دوربین شما متصل است و به مرورگر خود اجازه دسترسی به آن را دادهاید.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "برای فعالسازی دسترسی به دوربین در Chrome این موارد را در نظر بگیرید:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "بازکردن Chrome",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "به موارد بیشتر> تنظیمات برو.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "برای ویندوز: Alt+F، Alt+E یا F10 به دنبال آن فاصله",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "برای Mac: Command+",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "در زبانه «حریم خصوصی و امنیت»، «تنظیمات وبگاه» و سپس «دوربین» را برگزینید.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "در قسمت «بلوکشده»، «edx.org» را یافته و آن را انتخاب کنید.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "در بخش «مجوزها»، مجوزهای دوربین را به «مجاز» روزآمد کنید.",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "برای فعالسازی دسترسی به دوربین در اینترنت اکسپلورر:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "با رفتن به تنظیمات ویندوز > کنترل پنل > فلش پلیر، مدیر تنظیمات فلش پلیر را باز کنید.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "زبانه «دوربین و میکروفن» را انتخاب کنید و سپس دکمه «تنظیمات دوربین و میکروفون بر اساس وبگاه» را برگزینید.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "\"edx.org\" را از فهرست وبگاهها برگزینید و با انتخاب «مجوز» در منوی کشویی مجوزها را تغییر دهید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "برای فعالسازی دسترسی به دوربین در Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "بازکردن Firefox",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "«about:preferences» را در نوار نشانی اینترنتی وارد کنید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "زبانه «حریم خصوصی و امنیت» را انتخاب کرده و به بخش «مجوزها» بروید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "در کنار «دوربین»، دکمه «تنظیمات…» را انتخاب کنید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "در نوار جستجو، \"edx.org\" را وارد کنید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "در ستون وضعیت «edx.org»، «اعطا مجوز» را از منوی کشویی انتخاب کنید.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "«ذخیره تغییرات» را انتخاب کنید.",
|
||||
"id.verification.camera.access.failure.temporary.safari": "برای فعالسازی دسترسی به دوربین در Safari این موارد را در نظر بگیرید:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "بازکردن Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "روی منوی برنامه Safari کلیک کنید، سپس \"تنظیمات\" را انتخاب کنید. همچنین میتوانید از Command+ بهعنوان میانبر صفحه کلید استفاده نمایید.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "زبانه «وبگاهها» را انتخاب کرده و سپس «دوربین» را برگزینید.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "\"edx.org\" را انتخاب کنید و مجوزهای دوربین را به «مجوز دارد» تغییر دهید.",
|
||||
"id.verification.camera.access.failure.unsupported": "به نظر میرسد مرورگر شما از دسترسی به دوربین پشتیبانی نمیکند.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "اکنون مرورگر کروم از دسترسی به دوربین در دستگاه های iOS مانند آیفون و آی پد پشتیبانی نمیکند.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "لطفاً از مرورگر دیگری برای تکمیل تأیید هویت استفاده کنید.",
|
||||
"id.verification.photo.tips.title": "نکات مفید عکس",
|
||||
"id.verification.photo.tips.description": "در مرحله بعد، نیاز است که از چهره خود عکس بگیرید. لطفا نکات زیر را مرور کنید.",
|
||||
"id.verification.photo.tips.list.title": "نکات عکس",
|
||||
"id.verification.photo.tips.list.description": "برای یک تصویربرداری موفق، اطمینان حاصل کنید که:",
|
||||
"id.verification.photo.tips.list.well.lit": "نور چهرۀ شما عالی است.",
|
||||
"id.verification.photo.tips.list.inside.frame": "چهرۀ شما کاملاً صفحه را میپوشاند.",
|
||||
"id.verification.portrait.photo.title.camera": "از خودتان عکس بگیرید",
|
||||
"id.verification.portrait.photo.instructions.camera": "هنگامی که صورت شما در موقعیت خود قرار دارد، از دکمه عکاسی کنید در زیر برای گرفتن عکس استفاده کنید.",
|
||||
"id.verification.camera.help.sight.question": "اگر نتوانم تصویر دوربین را ببینم یا اگر نتوانم عکس خود را ببینم برای تعیین اینکه کدام طرف قابل مشاهده است، چه باید کرد؟",
|
||||
"id.verification.camera.help.sight.answer.portrait": "ممکن است بتوانید مراحل ثبت تصویر را بدون کمک کامل کنید، اما ممکن است چند بار تلاش کنید تا موقعیت دوربین بهدرستی انجام شود. موقعیت بهینه دوربین در هر رایانه متفاوت است، اما بهطور کلی بهترین موقعیت برای شات اصلی تقریباً 12-18 اینچ (30-45 سانتی متر) از دوربین است، در حالی که سر شما در مرکز نسبت به صفحه رایانه قرار دارد. اگر عکسهایی که ارسال میکنید رد شدند، برای تغییر زاویه نور، جهتگیری رایانه یا دوربین را حرکت دهید.",
|
||||
"id.verification.camera.help.sight.answer.id": "ممکن است بتوانید مراحل ثبت تصویر را بدون دریافت راهنمایی کامل کنید، اما ممکن است چند بار تلاش کنید تا موقعیت دوربین بهدرستی قرار گیرد. موقعیت بهینه دوربین در هر رایانه متفاوت است، اما بهطور کلی، بهترین موقعیت برای عکس کارت شناسایی 8-12 اینچ (20-30 سانتی متر) از دوربین است و کارت شناسایی نسبت به دوربین در مرکز قرار دارد. اگر عکسهایی که ارسال میکنید رد شدند، برای تغییر زاویه نور، جهتگیری رایانه یا دوربین را حرکت دهید. شایع ترین دلیل رد شدن، ناتوانی در خواندن متن روی کارت شناسایی است.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "اگر در نگه داشتن سرم در موقعیت مطلوب نسبت به دوربین مشکل داشته باشم، چه کنم؟",
|
||||
"id.verification.camera.help.difficulty.question.id": "اگر در نگه داشتن کارت شناسایی خود نسبت به موقعیت دوربین مشکل داشته باشم، چه کنم؟",
|
||||
"id.verification.camera.help.difficulty.answer": "اگر برای گرفتن عکس با هدف ارسال، به راهنمایی نیاز دارید، برای پیشنهادهای بیشتر با پشتیبانی {siteName} تماس بگیرید.",
|
||||
"id.verification.id.photo.unclear.question": "آیا تصویر کارت شناسایی شما واضح نبوده یا خیلی تار است؟",
|
||||
"id.verification.id.tips.title": "نکات مفید کارت شناسایی",
|
||||
"id.verification.id.tips.description": "در مرحله بعد، باید از یک کارت شناسایی معتبر که شامل نام و عکس کامل شما است، مانند گواهینامه رانندگی یا گذرنامه، عکس بگیرید. لطفا کارت شناسایی خود را آماده داشته باشید.",
|
||||
"id.verification.id.tips.list.well.lit": "نور کارت شناسایی شما مناسب است.",
|
||||
"id.verification.id.tips.list.clear": "اطمینان حاصل کنید که میتوانید عکس خود را ببینید و نام خود را بهوضوح بخوانید.",
|
||||
"id.verification.id.photo.title.camera": "از کارت شناسایی خود عکس بگیرید",
|
||||
"id.verification.id.photo.title.upload": "یک عکس از کارت شناسایی خود بارگذاری کنید",
|
||||
"id.verification.id.photo.preview.alt": "پیشنمایش تصویر کارت شناسایی.",
|
||||
"id.verification.id.photo.instructions.camera": "هنگامی که مدرک شناسایی شما در موقعیت قرار دارد، از دکمه «عکاسی» در زیر برای گرفتن عکس استفاده کنید. لطفاً از گذرنامه، گواهینامه رانندگی یا کارت شناسایی دیگری که شامل نام کامل و تصویر چهره شما باشد استفاده کنید.",
|
||||
"id.verification.id.photo.instructions.upload": "لطفا عکس کارت شناسایی خود را بارگذاری کنید. اطمینان حاصل کنید که کل مدرک شناسایی در داخل قاب قرار میگیرد و به خوبی روشن میشود. اندازه فایل باید کمتر از 10 مگابایت باشد. قالبهای پشتیبانیشده:",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "پروندهای که انتخاب کردید دارای نوعی تصویر است که از آن پشتیبانی نمیشود. لطفا از بین قالبهای زیر انتخاب کنید:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "پروندهای که انتخاب کردید خحجم زیادی دارد. لطفاً با پروندهای کمتر از 10 مگابایت دوباره امتحان کنید.",
|
||||
"id.verification.name.check.title": "بررسی مجدد نام",
|
||||
"id.verification.name.check.instructions": "آیا نام زیر با نام روی مدرک شناسایی شما مطابقت دارد؟ اگر خیر، نام زیر را روزآمد کنید تا تطابق یابد.",
|
||||
"id.verification.name.check.mismatch.information": "اگر نام زیر با نام درج شده بر مدرک شناسایی شما مطابقت نداشته باشد، تأیید هویت شما رد خواهد شد.",
|
||||
"id.verification.name.error": "لطفا نام خود را همان گونه که در کارت شناسایی عکسدار شما درج شده، وارد کنید.",
|
||||
"id.verification.account.name.warning.prefix": "لطفا توجه کنید:",
|
||||
"id.verification.account.name.settings": "تنظیمات حساب کاربری",
|
||||
"id.verification.name.label": "نام",
|
||||
"id.verification.account.name.photo.alt": "عکس کارت شناسایی شما ارسال شود.",
|
||||
"id.verification.review.title": "مرور تصاویر شما",
|
||||
"id.verification.review.description": "اطمینان حاصل کنید که ما میتوانیم هویت شما را با عکسها و اطلاعاتی که ارائه دادهاید تأیید کنیم.",
|
||||
"id.verification.review.portrait.label": "تصویر پرتره شما",
|
||||
"id.verification.review.portrait.alt": "عکس چهره شما ارسال شود.",
|
||||
"id.verification.review.portrait.retake": "عکس پرتره را دوباره بگیرید",
|
||||
"id.verification.review.id.label": "کارت شناسایی شما",
|
||||
"id.verification.review.id.alt": "تصویر کارت شناسایی شما ارسال شود.",
|
||||
"id.verification.review.id.retake": "عکس کارت شناسایی را دوباره بگیرید",
|
||||
"id.verification.review.confirm": "ارسال",
|
||||
"id.verification.submission.alert.error.face": "عکس چهره شما ضروری است. لطفا عکس پرتره خود را دوباره بگیرید.",
|
||||
"id.verification.submission.alert.error.id": "تصویر کارت شناسایی الزامی است. لطفا تصویر کارت شناسایی خود را دوباره بگیرید.",
|
||||
"id.verification.submission.alert.error.name": "یک نام حساب معتبر ضروری است. لطفاً نام حساب کاربری خود را بهروزآمد کنید تا با نام روی کارت شناسایی شما مطابقت داشته باشد.",
|
||||
"id.verification.submission.alert.error.unsupported": "یک یا چند پروندهای که بارگذاری کردید قالبی دارد که از آن پشتیبانی نمیشود. لطفا از موارد زیر انتخاب کنید:",
|
||||
"id.verification.review.error": "صفحه پشتیبانی {siteName}",
|
||||
"id.verification.submitted.title": "تأیید هویت در حال انجام است",
|
||||
"id.verification.submitted.text": "ما اطلاعات شما را دریافت کردهایم و در حال بررسی هویت شما هستیم. هنگامی که فرآیند تأیید کامل شد (معمولاً ظرف 5 روز) به شما اطلاع داده میشود. در ضمن، همچنان میتوانید به همه محتوای دوره آموزشی فراهمشده دسترسی داشته باشید.",
|
||||
"id.verification.return.dashboard": "بازگشت به پیشخوان",
|
||||
"id.verification.return.course": "بازگشت به دوره آموزشی",
|
||||
"id.verification.return.generic": "بازگشت",
|
||||
"id.verification.photo.upload.help.title": "به جای آن تصویری را بارگذاری کنید",
|
||||
"id.verification.photo.camera.help.title": "به جای آن، از دوربین خود استفاده کنید",
|
||||
"id.verification.photo.upload.help.text": "اگر در استفاده از عکسبرداری بالا دچار مشکل هستید، ممکن است بخواهید به جای آن عکسی بارگذاری کنید. برای بارگذاری تصویر روی دکمه زیر بزنید.",
|
||||
"id.verification.photo.camera.help.text": "اگر در بارگذاری عکس بالا دچار مشکل هستید، ممکن است بخواهید به جای آن از دوربین خود استفاده کنید. برای استفاده از دوربین خود، روی دکمه زیر بزنید.",
|
||||
"id.verification.upload.help.button": "برو به حالت بارگذاری",
|
||||
"id.verification.camera.help.button": "برو به حالت دوربین",
|
||||
"id.verification.request.camera.access.instructions": "برای اینکه با استفاده از دوربین خود عکس بگیرید، ممکن است درخواستی از سوی مرورگر خود برای دسترسی به دوربین دریافت کنید. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "تنظیمات حساب کاربری شما توسط {managerTitle} مدیریت میشود. اگر نام تصویر کارت شناسایی شما با نام موجود در حساب کاربری مطابقت ندارد، لطفاً پیش از تکمیل فرآیند تأیید عکس برای راهنمایی با مدیر {profileDataManager} یا {support} خود تماس بگیرید.",
|
||||
"id.verification.requirements.card.device.text": "شما به دستگاهی نیاز دارید که دوربین داشته باشد. اگر درخواست مرورگر برای دسترسی به دوربین خود دریافت کردید، لطفاً روی {allow} کلیک کنید.",
|
||||
"id.verification.account.name.summary.alert": "تنظیمات حساب کاربری شما توسط {manager Title} مدیریت میشود. نام روی تصویر کارت شناسایی شما با نام حساب کاربری شما مطابقت ندارد، لطفاً برای راهنمایی با مدیر {profile DataManager} یا {support} خود تماس بگیرید.",
|
||||
"idv.submission.alert.error": "\nهنگام تلاش برای ارسال تأیید هویت با خطای فنی مواجه شدیم. \nاین مشکل ممکن است موقتی باشد، پس لطفاً چند دقیقه دیگر دوباره امتحان کنید. \nاگر مشکل همچنان ادامه داشت، لطفاً برای راهنمایی به {support_link} بروید.",
|
||||
"id.verification.account.name.edit": "ویرایش {sr}",
|
||||
"notification.preference.heading": "اعلانها",
|
||||
"notification.preference.app.title": "{\n کلید, انتخاب,\n بحث {Discussions}\n کار دوره {Course Work}\n سایر {{key}}\n }",
|
||||
"notification.preference.title": "{ متن، انتخاب، هسته {اعلانهای اصلی} newDiscussionPost {پستهای بحث جدید} newQuestionPost {پستهای سؤال جدید} سایر { {text} } }",
|
||||
"notification.preference.type.label": "نوع",
|
||||
"notification.preference.web,label": "شبکه",
|
||||
"notification.preference.help.email": "نشانی رایانامه",
|
||||
"notification.preference.help.push": "فشار دادن",
|
||||
"notification.preference.load.more.courses": "بارگیری دوره های بیشتر",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -23,19 +23,19 @@
|
||||
"account.settings.field.full.name.help.text.default": "Le nom qui apparaît sur votre profile public.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "Ce nom va apparaître sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.verified": "Nom vérifié",
|
||||
"account.settings.field.name.verified.help.text.verified": "Ce nom a été vérifié par une pièce d'identité avec photo.",
|
||||
"account.settings.field.name.verified.help.text.verified": "Ce nom a été vérifié par une pièce d'identité avec photo.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "Ce nom a été vérifié par la surveillance.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Ce nom a été vérifié par une pièce d'identité avec photo et est sélectionné pour apparaître sur vos certificats et vos dossiers publics.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Ce nom a été vérifié par une pièce d'identité avec photo et est sélectionné pour apparaître sur vos certificats et vos dossiers publics.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "Ce nom a été vérifié par la surveillance et est sélectionné pour apparaître sur vos certificats et vos enregistrements publics.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "La vérification a été soumise. Cela prend généralement 48 heures ou moins. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Votre examen surveillé a été soumis. Le nom vérifié ne peut pas être modifié pour le moment. Veuillez réessayer dans 2 à 5 jours.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "Une fois la vérification d'identité réussie, ce nom apparaîtra sur vos attestations et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur votre certificat et vos dossiers publics. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.verification.help": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur votre certificat et vos dossiers publics. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.verification.help": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.field.full.name.help.text.submitted": "La vérification a été soumise. Cela prend généralement 48 heures ou moins. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Votre examen surveillé a été soumis. Le nom complet ne peut pas être modifié pour le moment. Veuillez réessayer dans 2 à 5 jours.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "Une fois la vérification d'identité réussie, ce nom apparaîtra sur vos attestations et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur vos certificats et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur vos certificats et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.success.message": "Votre demande de vérification d'identité a été complétée avec succès. Vous avez maintenant la possibilité de sélectionner le nom que vous préférez voir apparaître sur vos attestations et documents publics.",
|
||||
"account.settings.field.name.verified.success.message.header": "Votre demande de changement de nom est terminée!",
|
||||
"account.settings.field.name.verified.failure.message": "Votre dernière tentative de vérification d'identité n'a pas abouti. Les paramètres du compte correspondant ont été restaurés.",
|
||||
@@ -55,6 +55,16 @@
|
||||
"account.settings.field.dob": "Année de naissance",
|
||||
"account.settings.field.dob.empty": "Ajouter année de naissance",
|
||||
"account.settings.field.year_of_birth.options.empty": "Sélectionnez une année de naissance",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Pays",
|
||||
"account.settings.field.country.empty": "Ajouter un pays",
|
||||
"account.settings.field.country.options.empty": "Sélectionnez un pays",
|
||||
@@ -104,30 +114,13 @@
|
||||
"account.settings.editable.field.action.edit": "Modifier",
|
||||
"account.settings.static.field.empty": "Aucune valeur n'a été fixée. Contactez l'administrateur de votre {entreprise} pour effectuer des modifications.",
|
||||
"account.settings.static.field.empty.no.admin": "Pas de valeur définie.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "Si sélectionné, ce nom va apparaître sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choisissez le nom qui va apparaîtres sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.modal.certificate.select": "Sélectionnez un nom",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Nom complet",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Nom vérifié",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choisissez un nom",
|
||||
"account.settings.coaching.consent.welcome.header": "Commençons.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Nous sommes là pour vous du début à la fin",
|
||||
"account.settings.coaching.consent.description": "Les programmes MicroBachelors comprennent un coaching axé sur votre carrière, vos études et la façon dont vous obtiendrez des résultats grâce à une communication individuelle avec un professionnel expérimenté. Si vous êtes intéressé, fournissez les informations ci-dessous et cliquez sur \"Soumettre\". Notre partenaire de coaching vous contactera par courrier électronique et/ou par SMS pour vous aider à progresser. Les conditions générales s'appliquent.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* Les services de coaching sont inclus sans frais supplémentaires pour les apprenants ayant un numéro de téléphone aux États-Unis. Le coaching comprend des messages textes récurrents. Les tarifs des messages et des données peuvent s'appliquer. Text STOP pour se désengager.",
|
||||
"account.settings.coaching.consent.accept-coaching": "S'inscrire pour le coaching.",
|
||||
"account.settings.coaching.consent.decline-coaching": "Je préfère ne pas être contacté par les services de coaching gratuit.",
|
||||
"account.settings.coaching.consent.label.name": "Veuillez confirmer votre nom",
|
||||
"account.settings.coaching.consent.label.phone-number": "Entrer un numéro de cellulaire",
|
||||
"account.settings.coaching.consent.success.header": "Opération réussie!",
|
||||
"account.settings.coaching.consent.success.message": "Vous êtes inscrit au coaching. Vous pouvez vous attendre à un message par courriel ou SMS dans les prochains jours.",
|
||||
"account.settings.coaching.consent.success.continue": "Démarrer mon cours",
|
||||
"account.settings.coaching.managed.support": "support",
|
||||
"account.settings.coaching.managed.alert": "Votre nom est géré par {managerTitle}. Contactez votre administrateur pour obtenir de l'aide.",
|
||||
"account.settings.field.phone_number": "Numéro de téléphone",
|
||||
"account.settings.field.phone_number.empty": "Ajouter un numéro de téléphone",
|
||||
"account.settings.field.coaching_consent": "Consentement pour le coaching",
|
||||
"account.settings.field.coaching_consent.tooltip": "Un parcours MicroBachelors inclus du coaching par texto avec un professionnel expériementé qui vous aidera à combiner votre expérience éducationnelle et vos objectifs de carrière. Les services de coaching sont inclus sans coût additionnel aux apprenant ayant un numéro de téléphone US. Le coût standard des textos s'applique. Texter 'STOP' en tout temp pour arrêter les messages.",
|
||||
"account.settings.field.coaching_consent.error": "Un numéro de téléphone US valide est requis pour s'inscrire pour du coaching",
|
||||
"account.settings.delete.account.before.proceeding": "Avant de poursuivre, veuillez {actionLink}.",
|
||||
"account.settings.delete.account.header": "Supprimer mon compte",
|
||||
"account.settings.delete.account.subheader": "Nous sommes désolés de vous voir quitter!",
|
||||
@@ -192,8 +185,8 @@
|
||||
"account.settings.name.change.title.begin": "Avant que l'on commençons",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "Cette action ne peut pas être renversée sans vérification d'identité.",
|
||||
"account.settings.name.change.id.name.label": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.name.change.id.name.placeholder": "Entrez le nom sur votre pièce d'identité avec photo",
|
||||
"account.settings.name.change.id.name.label": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.name.change.id.name.placeholder": "Entrez le nom sur votre pièce d'identité avec photo",
|
||||
"account.settings.name.change.error.valid.name": "Entrez un nom valide",
|
||||
"account.settings.name.change.error.general": "Une erreur est survenue. Veuillez réessayer.",
|
||||
"account.settings.name.change.continue": "Continuer",
|
||||
@@ -209,6 +202,7 @@
|
||||
"account.settings.sso.account.disconnect.error": "Un problème est survenu lors de la déconnexion de ce compte. Contactez le support si le problème persiste.",
|
||||
"account.settings.sso.unlink.account": "Dissocier le compte {name}",
|
||||
"account.settings.sso.no.providers": "Aucun compte ne peut être lié pour le moment.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "Nous ne pouvez pas vérifier votre identité pour le moment. Si vous n'avez pas encore activé votre compte, veuillez vérifier votre dossier de pourriels pour le courriel d'activation de {email}.",
|
||||
"id.verification.next": "Suivant",
|
||||
"id.verification.support": "support",
|
||||
@@ -309,9 +303,9 @@
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "Le fichier que vous avez sélectionné n'est pas un type d'image pris en charge. Veuillez choisir parmi les formats suivants :",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "Le fichier que vous avez sélectionné est trop volumineux. Veuillez réessayer avec un fichier de moins de 10 Mo.",
|
||||
"id.verification.name.check.title": "Vérifiez votre nom",
|
||||
"id.verification.name.check.instructions": "Le nom ci-dessous correspond-il au nom sur votre pièce d'identité avec photo ? Si ce n'est pas le cas, mettez à jour le nom ci-dessous pour qu'il corresponde à votre pièce d'identité avec photo.",
|
||||
"id.verification.name.check.mismatch.information": "Si le nom ci-dessous ne correspond pas à votre pièce d'identité avec photo, votre vérification d'identité sera refusée.",
|
||||
"id.verification.name.error": "Veuillez entrer votre nom tel qu'il apparaît sur votre pièce d'identité avec photo.",
|
||||
"id.verification.name.check.instructions": "Le nom ci-dessous correspond-il au nom sur votre pièce d'identité avec photo ? Si ce n'est pas le cas, mettez à jour le nom ci-dessous pour qu'il corresponde à votre pièce d'identité avec photo.",
|
||||
"id.verification.name.check.mismatch.information": "Si le nom ci-dessous ne correspond pas à votre pièce d'identité avec photo, votre vérification d'identité sera refusée.",
|
||||
"id.verification.name.error": "Veuillez entrer votre nom tel qu'il apparaît sur votre pièce d'identité avec photo.",
|
||||
"id.verification.account.name.warning.prefix": "Veuillez noter:",
|
||||
"id.verification.account.name.settings": "Paramètres du compte",
|
||||
"id.verification.name.label": "Nom",
|
||||
@@ -346,5 +340,15 @@
|
||||
"id.verification.requirements.card.device.text": "Vous avez besoin d'un appareil équipé d'une caméra. Si vous recevez une invite du navigateur pour accéder à votre caméra, assurez-vous de cliquer sur {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Les paramètres de votre compte sont gérés par {managerTitle}. Si le nom sur votre pièce d'identité avec photo ne correspond pas au nom de votre compte, veuillez contacter votre administrateur {profileDataManager} ou {support} pour obtenir de l'aide.",
|
||||
"idv.submission.alert.error": "\n Nous avons rencontré une erreur technique en essayant de soumettre la vérification d'identité.\n Il peut s'agir d'un problème temporaire. Veuillez réessayer dans quelques minutes.\n Si le problème persiste, veuillez consulter {support_link} pour obtenir de l'aide.\n ",
|
||||
"id.verification.account.name.edit": "Modifier {sr}"
|
||||
"id.verification.account.name.edit": "Modifier {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
354
src/i18n/messages/fr_CA.json
Normal file
354
src/i18n/messages/fr_CA.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "Le compte {provider} que vous avez sélectionné est déjà lié à un autre compte {siteName}.",
|
||||
"account.settings.message.managed.settings": "Les paramètres de votre profil sont gérés par {managerTitle}. Contactez votre administrateur ou {support} pour obtenir de l'aide.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Paramètres du compte",
|
||||
"account.settings.loading.message": "Chargement...",
|
||||
"account.settings.loading.error": "Erreur : {error}",
|
||||
"account.settings.banner.beta.language": "Vous avez réglé votre langue au {beta_language}, qui n'est pas entièrement traduite. Vous pouvez nous aider à traduire cette langue en rejoignant la communauté Transifex pour traduire de l'anglais au {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Revenir au {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Aidez-nous à traduire en {beta_language}",
|
||||
"account.settings.section.account.information": "Information du compte",
|
||||
"account.settings.section.account.information.description": "Ces paramètres comprennent des informations de base à propos de votre compte.",
|
||||
"account.settings.section.profile.information": "Informations de profil",
|
||||
"account.settings.section.demographics.information": "Informations optionnelles",
|
||||
"account.settings.section.site.preferences": "Préférences de site",
|
||||
"account.settings.section.linked.accounts": "Comptes liés",
|
||||
"account.settings.section.linked.accounts.description": "Vous pouvez associer vos comptes de réseaux sociaux pour simplifier la connexion à {siteName}.",
|
||||
"account.settings.field.username": "Nom d'utilisateur",
|
||||
"account.settings.field.username.help.text": "Le nom qui vous identifie sur {siteName}. Vous ne pouvez pas changer votre nom d'utilisateur.",
|
||||
"account.settings.field.full.name": "Nom complet",
|
||||
"account.settings.field.full.name.empty": "Ajouter un nom",
|
||||
"account.settings.field.full.name.help.text": "Le nom que vous avez utilisé pour la vérification d'identité et qui apparaît sur vos attestations.",
|
||||
"account.settings.field.full.name.help.text.default": "Le nom qui apparaît sur votre profil public.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "Ce nom va apparaître sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.verified": "Nom vérifié",
|
||||
"account.settings.field.name.verified.help.text.verified": "Ce nom a été vérifié par une pièce d'identité avec photo.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "Ce nom a été vérifié par la surveillance.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Ce nom a été vérifié par une pièce d'identité avec photo et est sélectionné pour apparaître sur vos attestations et vos dossiers publics.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "Ce nom a été vérifié par la surveillance et est sélectionné pour apparaître sur vos attestations et vos dossiers publics.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "La vérification a été soumise. Cela prend généralement 48 heures ou moins. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Votre examen surveillé a été soumis. Le nom vérifié ne peut pas être modifié pour le moment. Veuillez réessayer dans 2 à 5 jours.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "Une fois la vérification d'identité réussie, ce nom apparaîtra sur vos attestations et vos dossiers publics. Un nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur votre attestation et vos dossiers publics. Le nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.verification.help": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.field.full.name.help.text.submitted": "La vérification a été soumise. Cela prend généralement 48 heures ou moins. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Votre examen surveillé a été soumis. Le nom complet ne peut pas être modifié pour le moment. Veuillez réessayer dans 2 à 5 jours.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "Une fois la vérification d'identité réussie, ce nom apparaîtra sur vos attestations et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Une fois que votre examen surveillé a réussi l'examen, ce nom apparaîtra sur vos attestations et vos dossiers publics. Le nom complet ne peut pas être modifié pour le moment.",
|
||||
"account.settings.field.name.verified.success.message": "Votre demande de vérification d'identité a été complétée avec succès. Vous avez maintenant la possibilité de sélectionner le nom que vous préférez voir apparaître sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.verified.success.message.header": "Votre demande de changement de nom est terminée!",
|
||||
"account.settings.field.name.verified.failure.message": "Votre dernière tentative de vérification d'identité n'a pas abouti. Les paramètres du compte correspondant ont été restaurés.",
|
||||
"account.settings.field.name.verified.failure.message.header": "Nous n'avons pas pu vérifier votre identité.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "En savoir plus sur la vérification d'identité",
|
||||
"account.settings.field.name.verified.submitted.message": "Votre demande de vérification d'identité a bien été envoyée et prend généralement entre 24 et 48 heures afin d'être validée.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "Lorsque votre demande est approuvée, votre nouveau nom apparaîtra sur toutes les attestations associées et les dossiers publics.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Votre demande de changement de nom est presque terminée!",
|
||||
"account.settings.field.email": "Adresse courriel (Connexion)",
|
||||
"account.settings.field.email.empty": "Ajouter une adresse courriel",
|
||||
"account.settings.field.email.confirmation": "Nous avons envoyé un message de confirmation à {value}. Cliquez sur le lien dans le message pour mettre à jour votre adresse courriel.",
|
||||
"account.settings.field.email.help.text": "Vous recevrez des messages de {siteName} et des équipes de cours à cette adresse.",
|
||||
"account.settings.field.secondary.email": "Adresse courriel de récupération",
|
||||
"account.settings.field.secondary.email.empty": "Ajouter une adresse courriel de récupération",
|
||||
"account.settings.field.secondary.email.confirmation": "Nous avons envoyé un message de confirmation à {value}. Cliquez sur le lien dans le message pour mettre à jour votre adresse courriel de récupération.",
|
||||
"account.settings.email.field.confirmation.header": "En attente de confirmation",
|
||||
"account.settings.field.dob": "Année de naissance",
|
||||
"account.settings.field.dob.empty": "Ajouter votre année de naissance",
|
||||
"account.settings.field.year_of_birth.options.empty": "Sélectionner une année de naissance",
|
||||
"account.settings.field.dob.month": "Mois",
|
||||
"account.settings.field.dob.year": "Année",
|
||||
"account.settings.field.month.year.default": "Sélectionnez le mois",
|
||||
"account.settings.field.dob.year.default": "Sélectionnez l'année",
|
||||
"account.settings.field.dob.form.button": "Veuillez confirmer votre date de naissance",
|
||||
"account.settings.field.dob.form.title": "Entrez votre mois et votre année de naissance",
|
||||
"account.settings.field.dob.form.help.text": "Nous demandons des informations sur le mois et l'année de naissance pour nous aider à respecter nos obligations légales.",
|
||||
"account.settings.field.dob.form.success": "Merci d'avoir entré vos informations.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Sélectionnez un mois de naissance",
|
||||
"account.settingsfield.dob.error.general": "Une erreur est survenue. Veuillez réessayer.",
|
||||
"account.settings.field.country": "Pays",
|
||||
"account.settings.field.country.empty": "Ajouter un pays",
|
||||
"account.settings.field.country.options.empty": "Sélectionner un pays",
|
||||
"account.settings.field.state": "État",
|
||||
"account.settings.field.state.empty": "Ajouter un état",
|
||||
"account.settings.field.state.options.empty": "Choisir un état",
|
||||
"account.settings.field.site.language": "Langue du site",
|
||||
"account.settings.field.site.language.help.text": "La langue utilisée au travers du site. Le site est actuellement disponible dans un nombre limité de langues.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Ajouter un niveau d'études",
|
||||
"account.settings.field.education.levels.empty": "Sélectionner un niveau d'études",
|
||||
"account.settings.field.education.levels.p": "Doctorat",
|
||||
"account.settings.field.education.levels.m": "Maîtrise ou diplôme professionnel",
|
||||
"account.settings.field.education.levels.b": "Diplôme de baccalauréat",
|
||||
"account.settings.field.education.levels.a": "Diplôme d'associé",
|
||||
"account.settings.field.education.levels.hs": "Lycée / enseignement secondaire",
|
||||
"account.settings.field.education.levels.jhs": "Collège / enseignement secondaire inférieur",
|
||||
"account.settings.field.education.levels.el": "Enseignement primaire",
|
||||
"account.settings.field.education.levels.none": "Sans diplôme",
|
||||
"account.settings.field.education.levels.o": "Autre niveau d'études",
|
||||
"account.settings.field.gender": "Genre",
|
||||
"account.settings.field.gender.empty": "Ajouter le genre",
|
||||
"account.settings.field.gender.options.empty": "Sélectionner un genre",
|
||||
"account.settings.field.gender.options.f": "Femme",
|
||||
"account.settings.field.gender.options.m": "Homme",
|
||||
"account.settings.field.gender.options.o": "Autre",
|
||||
"account.settings.field.language.proficiencies": "Langue parlée",
|
||||
"account.settings.field.language.proficiencies.empty": "Ajouter une langue parlée",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Sélectionnez une langue",
|
||||
"account.settings.field.time.zone": "Fuseau horaire",
|
||||
"account.settings.field.time.zone.empty": "Définir le fuseau horaire",
|
||||
"account.settings.field.time.zone.description": "Sélectionnez le fuseau horaire pour l'affichage des dates de cours. Si vous n'indiquez aucun fuseau horaire, les dates de cours, y compris les échéances de devoirs, seront affichés en fonction du fuseau horaire local de votre navigateur.",
|
||||
"account.settings.field.time.zone.default": "Par défaut (Fuseau horaire local)",
|
||||
"account.settings.field.time.zone.all": "Tous les fuseaux horaires",
|
||||
"account.settings.field.time.zone.country": "Fuseaux horaires du pays",
|
||||
"account.settings.section.social.media": "Liens vers les réseaux sociaux",
|
||||
"account.settings.section.social.media.description": "Optionnellement, liez vos comptes personnels aux icônes des réseaux sociaux sur votre profil {siteName}.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Ajouter un profil LinkedIn",
|
||||
"account.settings.jump.nav.delete.account": "Supprimer mon compte",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Ajouter un profil Twitter",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Ajouter un profil Facebook",
|
||||
"account.settings.editable.field.action.save": "Sauvegarder",
|
||||
"account.settings.editable.field.action.cancel": "Annuler",
|
||||
"account.settings.editable.field.action.edit": "Modifier",
|
||||
"account.settings.static.field.empty": "Aucune valeur définie. Contactez l'administrateur de votre {enterprise} pour effectuer des modifications.",
|
||||
"account.settings.static.field.empty.no.admin": "Aucune valeur définie.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "Si sélectionné, ce nom va apparaître sur vos attestations et dossiers publics.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choisissez le nom qui va apparaître sur vos attestations et dossiers publics",
|
||||
"account.settings.field.name.modal.certificate.select": "Sélectionnez un nom",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Nom complet",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Nom vérifié",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choisissez un nom",
|
||||
"account.settings.delete.account.before.proceeding": "Avant de continuer, veuillez {actionLink}.",
|
||||
"account.settings.delete.account.header": "Supprimer mon compte",
|
||||
"account.settings.delete.account.subheader": "Nous sommes désolés de vous voir quitter!",
|
||||
"account.settings.delete.account.text.1": "Veuillez noter : La suppression de votre compte et de vos données personnelles est permanente et ne peut être annulée. {siteName} ne pourra pas récupérer votre compte ou les données supprimées.",
|
||||
"account.settings.delete.account.text.2": "Une fois votre compte supprimé, vous ne pourrez plus l'utiliser pour suivre des cours sur {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Une fois votre compte supprimé, vous ne pouvez pas l'utiliser pour suivre des cours sur l'application EDUlib, edulib.org ou sur tout autre site hébergé par EDUlib. Cela inclut l'accès à edulib.org depuis le système de votre employeur ou de votre université et l'accès à des sites privés offerts par MIT Open Learning, Wharton Executive Education et Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Suivez ces instructions pour imprimer ou télécharger une attestation",
|
||||
"account.settings.delete.account.text.warning": "Avertissement : la suppression d'un compte est permanente. Veuillez lire attentivement ce qui précède avant de continuer. Cette action est irréversible et vous ne pourrez plus utiliser la même adresse courriel sur {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Vous souhaitez modifier votre adresse électronique, votre nom ou votre mot de passe?",
|
||||
"account.settings.delete.account.button": "Supprimer mon compte",
|
||||
"account.settings.delete.account.please.activate": "activez votre compte",
|
||||
"account.settings.delete.account.please.confirm": "confirmer votre compte",
|
||||
"account.settings.delete.account.please.unlink": "dissocier tous les comptes de réseaux sociaux",
|
||||
"account.settings.delete.account.modal.header": "Êtes-vous certain?",
|
||||
"account.settings.delete.account.modal.text.1": "Vous avez sélectionné \"Supprimer mon compte\". La suppression de votre compte et de vos données personnelles est permanente et ne peut être annulée. {siteName} ne pourra ni récupérer votre compte ni les données supprimées.",
|
||||
"account.settings.delete.account.modal.text.2": "Si vous continuez, vous ne pourrez plus utiliser ce compte pour suivre des cours sur {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "Si vous continuez, vous ne pourrez plus utiliser ce compte pour suivre des cours sur l'application EDUlib, edulib.org ou sur tout autre site hébergé par EDUlib. Cela inclut l'accès à edulib.org depuis le système de votre employeur ou de votre université et l'accès à des sites privés offerts par MIT Open Learning, Wharton Executive Education et Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "Si vous souhaitez continuer et supprimer votre compte, veuillez entrer le mot de passe de votre compte :",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Oui, supprimer",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Annuler",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Impossible de supprimer le compte",
|
||||
"account.settings.delete.account.error.no.password": "Un mot de passe est requis",
|
||||
"account.settings.delete.account.error.invalid.password": "Mot de passe incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Désolé, une erreur s'est produite lors du traitement de votre demande. Veuillez réessayer plus tard.",
|
||||
"account.settings.delete.account.modal.after.header": "Nous sommes désolés de vous voir quitter! Votre compte sera bientôt supprimé.",
|
||||
"account.settings.delete.account.modal.after.text": "La suppression du compte, y compris la suppression des listes de diffusion, peut prendre quelques semaines pour être entièrement traitée via notre système. Si vous souhaitez désactiver les courriels avant cette date, veuillez vous désabonner du bas de page de chaque courriel.",
|
||||
"account.settings.delete.account.modal.after.button": "Fermer",
|
||||
"account.settings.delete.account.text.3.edX": "Vous pouvez également perdre l'accès aux attestations vérifiées et à d'autres informations d'identification de programme, comme les attestations MicroMasters. Vous pouvez en faire une copie pour vos dossiers avant de procéder à la suppression. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "Vous pouvez également perdre accès aux attestations vérifiées et à d'autres informations d'identification de programme. Vous pouvez en faire une copie pour vos dossiers avant de procéder à la suppression.",
|
||||
"account.settings.message.demographics.service.issue": "Une erreur s'est produite lors de la tentative de récupération ou de sauvegarde des informations de votre compte. Veuillez réessayer plus tard.",
|
||||
"account.settings.field.demographics.gender": "Identité de genre",
|
||||
"account.settings.field.demographics.gender.empty": "Ajouter une identité de genre",
|
||||
"account.settings.field.demographics.gender.options.empty": "Sélectionnez une identité de genre",
|
||||
"account.settings.field.demographics.gender_description": "Description de l'identité de genre",
|
||||
"account.settings.field.demographics.gender_description.empty": "Entrez la description",
|
||||
"account.settings.field.demographics.ethnicity": "Identité raciale / ethnique",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Ajouter une identité raciale / ethnique",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Sélectionnez tout ce qui s'y rapporte",
|
||||
"account.settings.field.demographics.income": "Revenu familial",
|
||||
"account.settings.field.demographics.income.empty": "Ajouter le revenu familial",
|
||||
"account.settings.field.demographics.income.options.empty": "Sélectionnez une fourchette de revenu familial",
|
||||
"account.settings.field.demographics.military_history": "Statut militaire U.S.",
|
||||
"account.settings.field.demographics.military_history.empty": "Ajouter un statut militaire",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Sélectionnez un statut militaire",
|
||||
"account.settings.field.demographics.learner_education_level": "Votre niveau d'études",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Ajouter un niveau d'études",
|
||||
"account.settings.field.demographics.parent_education_level": "Niveau d'études des parents / tuteurs",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Ajouter un niveau d'études",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Sélectionnez le niveau d'études",
|
||||
"account.settings.field.demographics.work_status": "Statut d'emploi",
|
||||
"account.settings.field.demographics.work_status.empty": "Ajouter un statut d'emploi",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Sélectionnez le statut d'emploi",
|
||||
"account.settings.field.demographics.work_status_description": "Description du statut d'emploi",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Entrez la description",
|
||||
"account.settings.field.demographics.current_work_sector": "Secteur d'emploi actuel",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Ajouter le secteur d'emploi",
|
||||
"account.settings.field.demographics.future_work_sector": "Secteur d'emploi futur",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Ajouter le secteur d'emploi",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Sélectionnez un secteur d'emploi",
|
||||
"account.settings.section.demographics.why": "Pourquoi est-ce que {siteName} collecte ces informations?",
|
||||
"account.settings.name.change.title.id": "Ce changement de nom requiert une vérification d'identité",
|
||||
"account.settings.name.change.title.begin": "Avant que l'on commence",
|
||||
"account.settings.name.change.warning.one": "Attention : Cette action change le nom apparaissant sur toutes les attestations qui ont été obtenues sur ce compte par le passé, toutes les attestations que vous obtenez présentement ainsi que toutes celles que vous obtiendriez.",
|
||||
"account.settings.name.change.warning.two": "Cette action ne peut pas être renversée sans vérification d'identité.",
|
||||
"account.settings.name.change.id.name.label": "Entrez votre nom tel qu'il apparaît sur votre carte d'étudiant, de travail ou d'identité émise par le gouvernement.",
|
||||
"account.settings.name.change.id.name.placeholder": "Entrez le nom sur votre pièce d'identité avec photo",
|
||||
"account.settings.name.change.error.valid.name": "Entrez un nom valide.",
|
||||
"account.settings.name.change.error.general": "Une erreur est survenue. Veuillez réessayer.",
|
||||
"account.settings.name.change.continue": "Continuer",
|
||||
"account.settings.name.change.cancel": "Annuler",
|
||||
"error.notfound.message": "La page que vous recherchez n'est pas disponible ou il y a une erreur dans l'URL. Veuillez vérifier l'URL et réessayer.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "support technique",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "Nous avons envoyé un message à {email}. Cliquez sur le lien dans le message pour réinitialiser votre mot de passe. Vous n'avez pas reçu le message? Contactez {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Réinitialiser le mot de passe",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Votre demande précédente est en cours, veuillez réessayer dans quelques instants.",
|
||||
"account.settings.editable.field.password.reset.label": "Mot de passe",
|
||||
"account.settings.sso.link.account": "Se connecter avec {name}",
|
||||
"account.settings.sso.account.connected": "Lié",
|
||||
"account.settings.sso.account.disconnect.error": "Un problème est survenu lors de la déconnexion de ce compte. Contactez le support si le problème persiste.",
|
||||
"account.settings.sso.unlink.account": "Dissocier le compte {name}",
|
||||
"account.settings.sso.no.providers": "Aucun compte ne peut être lié pour le moment.",
|
||||
"account.page.title": "Compte | {siteName}",
|
||||
"id.verification.access.blocked.denied": "Nous ne pouvons pas vérifier votre identité en ce moment. Si vous n'avez pas encore activé votre compte, veuillez regarder dans vos pourriels pour trouver le courriel d'activation provenant de {email}.",
|
||||
"id.verification.next": "Suivant",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Exemple de pièce d'identité valide avec un nom complet et une photo.",
|
||||
"id.verification.requirements.title": "Exigences de vérification des photos",
|
||||
"id.verification.requirements.description": "Afin de procéder à la vérification des photos, vous aurez besoin des éléments suivants :",
|
||||
"id.verification.requirements.card.device.title": "Appareil avec caméra",
|
||||
"id.verification.requirements.card.device.allow": "Permettre",
|
||||
"id.verification.requirements.card.id.title": "Pièce d'identité avec photo",
|
||||
"id.verification.requirements.card.id.text": "Vous avez besoin d'une pièce d'identité valide contenant votre nom complet et votre photo, exemple : un permis de conduire ou un passeport.",
|
||||
"id.verification.privacy.title": "Information sur la confidentialité",
|
||||
"id.verification.privacy.need.photo.question": "Pourquoi est-ce que {siteName} a besoin de ma photo?",
|
||||
"id.verification.privacy.need.photo.answer": "Nous utilisons vos photos de vérification pour confirmer votre identité et assurer la validité de votre attestation.",
|
||||
"id.verification.privacy.do.with.photo.question": "Qu'est-ce que {siteName} fait avec cette photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "Nous encryptons votre photo et l'envoyons à notre service d'autorisation pour examen. Votre photo et vos informations ne sont ni enregistrées ni visibles sur {siteName} une fois le processus de vérification est terminé.",
|
||||
"id.verification.access.blocked.title": "Vérification d'identité",
|
||||
"id.verification.access.blocked.enrollment": "Vous n'êtes actuellement pas inscrit à un cours nécessitant une vérification d'identité.",
|
||||
"id.verification.access.blocked.pending": "Vous avez déjà soumis vos informations de vérification. Vous verrez un message sur votre tableau de bord lorsque le processus de vérification sera terminé (généralement dans les 5 jours).",
|
||||
"id.verification.photo.take": "Prendre une photo",
|
||||
"id.verification.photo.retake": "Reprendre la photo?",
|
||||
"id.verification.photo.enable.detection": "Activer la détection des visages",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "Si coché, une case apparaîtra autour de votre visage. Votre visage peut être vu clairement si la boîte qui l'entoure est bleue. Si votre visage n'est pas dans une bonne position ou indétectable, la case sera rouge.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "Si coché, une case apparaîtra autour du visage sur votre pièce d'identité. Le visage peut être vu clairement si la boîte qui l'entoure est bleue. Si le visage n'est pas dans une bonne position ou indétectable, la case sera rouge.",
|
||||
"id.verification.photo.feedback.correct": "Le visage est en bonne position.",
|
||||
"id.verification.photo.feedback.two.faces": "Plus d'un visage détecté.",
|
||||
"id.verification.photo.feedback.no.faces": "Aucun visage détecté.",
|
||||
"id.verification.photo.feedback.top.left": "Position incorrecte. En haut à gauche.",
|
||||
"id.verification.photo.feedback.top.center": "Position incorrecte. En haut au centre.",
|
||||
"id.verification.photo.feedback.top.right": "Position incorrecte. En haut à droite.",
|
||||
"id.verification.photo.feedback.center.left": "Position incorrecte. Centre gauche.",
|
||||
"id.verification.photo.feedback.center.center": "Position incorrecte. Trop près de la caméra.",
|
||||
"id.verification.photo.feedback.center.right": "Position incorrecte. Centre droit.",
|
||||
"id.verification.photo.feedback.bottom.left": "Position incorrecte. En bas à gauche.",
|
||||
"id.verification.photo.feedback.bottom.center": "Position incorrecte. En bas au centre.",
|
||||
"id.verification.photo.feedback.bottom.right": "Position incorrecte. En bas à droite.",
|
||||
"id.verification.camera.access.title": "Autorisations de la caméra",
|
||||
"id.verification.camera.access.title.success": "Accès à la caméra activé",
|
||||
"id.verification.camera.access.title.failed": "L'accès à la caméra a échoué",
|
||||
"id.verification.camera.access.click.allow": "Veuillez vous assurer de cliquer sur \"Autoriser\"",
|
||||
"id.verification.camera.access.enable": "Activer la caméra",
|
||||
"id.verification.camera.access.problems": "Vous avez des problèmes?",
|
||||
"id.verification.camera.access.skip": "Ignorer et télécharger les fichiers image au lieu",
|
||||
"id.verification.camera.access.success": "Il semble que votre appareil photo fonctionne et est prêt.",
|
||||
"id.verification.camera.access.failure": "Il semble que nous ne puissions pas accéder à votre caméra. Vous devrez télécharger des fichiers image de vous et de votre pièce d'identité.",
|
||||
"id.verification.camera.access.failure.temporary": "Il semblerait que nous ne pouvons pas accéder à votre caméra. Vérifiez qu'elle est bien connectée et que votre navigateur est autorisé à y accéder.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "Pour activer l'accès à la caméra dans Chrome :",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Ouvrir Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Accédez à Plus> Paramètres.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "Pour Windows: Alt+F, Alt+E ou F10 suivi de la barre d'espace",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "Pour Mac : Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Sous l'onglet \"Confidentialité et sécurité\", sélectionnez \"Paramètres du site\", puis \"Appareil photo\".",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Sous \"Bloqué\", recherchez \"edulib.org\" et sélectionnez-le.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "Dans la section \"Autorisations\", mettez à jour les autorisations de la caméra pour \"Autoriser\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "Pour activer l'accès à la caméra dans Internet Explorer :",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Ouvrez le Gestionnaire des paramètres de Flash Player en accédant à Paramètres Windows> Panneau de configuration> Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Sélectionnez l'onglet \"Caméra et micro\", puis sélectionnez le bouton \"Paramètres de la caméra et du microphone par site\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choisissez \"edulib.org\" dans la liste des sites Web et modifiez les autorisations en sélectionnant \"Autoriser\" dans le menu déroulant.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "Pour activer l'accès à la caméra dans Firefox :",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Ouvrez Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Saisissez \"about:preferences\" dans la barre d'URL.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Sélectionnez l'onglet \"Confidentialité et sécurité\" et accédez à la section \"Autorisations\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "À côté de \"Appareil photo\", sélectionnez le bouton \"Paramètres…\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "Dans la barre de recherche, saisissez \"edulib.org\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "Dans la colonne d'état de \"edulib.org\", sélectionnez \"Autoriser\" dans le menu déroulant.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Sélectionnez \"Enregistrer les modifications.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "Pour activer l'accès à la caméra dans Safari :",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Ouvrir Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Cliquez sur le menu de l'application Safari, puis sélectionnez \"Préférences\". Vous pouvez également utiliser Command+ comme raccourci clavier.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Sélectionnez l'onglet \"Sites Web\", puis sélectionnez \"Appareil photo\".",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Sélectionnez \"edulib.org\" et modifiez les autorisations de la caméra pour \"Autoriser\".",
|
||||
"id.verification.camera.access.failure.unsupported": "Il semble que votre fureteur ne prend pas en charge l'accès à la caméra.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "Le fureteur Chrome ne prend actuellement pas en charge l'accès à la caméra sur les appareils iOS, tels que les iPhones et les iPad.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Veuillez utiliser un autre navigateur pour terminer la vérification d'identité.",
|
||||
"id.verification.photo.tips.title": "Conseils photo utiles",
|
||||
"id.verification.photo.tips.description": "Ensuite, nous aurons besoin de vous preniez une photo de votre visage. Veuillez consulter les conseils utiles ci-dessous.",
|
||||
"id.verification.photo.tips.list.title": "Conseils photo",
|
||||
"id.verification.photo.tips.list.description": "Pour prendre une bonne photo, assurez-vous que :",
|
||||
"id.verification.photo.tips.list.well.lit": "Votre visage est bien éclairé.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Votre visage est entièrement dans le cadre.",
|
||||
"id.verification.portrait.photo.title.camera": "Prenez une photo de vous",
|
||||
"id.verification.portrait.photo.instructions.camera": "Lorsque votre visage est en position, utilisez le bouton Prendre une photo ci-dessous pour prendre votre photo.",
|
||||
"id.verification.camera.help.sight.question": "Que faire si je ne peux pas voir l'image de la caméra ou si je ne peux pas voir ma photo pour déterminer quel côté est visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "Vous pourrez peut-être terminer la procédure de capture d'image sans aide, mais cela peut prendre quelques tentatives de soumission pour obtenir le bon positionnement de la caméra. Le positionnement optimal de la caméra varie avec chaque ordinateur, mais généralement la meilleure position pour une prise de vue de la tête est d'environ 12-18 pouces (30-45 centimètres) de la caméra, la tête étant centrée par rapport à l'écran de l'ordinateur. Si les photos que vous soumettez sont rejetées, essayez de déplacer l’orientation de l’ordinateur ou de l’appareil photo pour modifier l’angle d’éclairage.",
|
||||
"id.verification.camera.help.sight.answer.id": "Vous pourrez peut-être terminer la procédure de capture d'image sans aide, mais cela peut prendre quelques tentatives de soumission pour obtenir le bon positionnement de la caméra. Le positionnement optimal de la caméra varie avec chaque ordinateur, mais généralement, la meilleure position pour une photo d'une pièce d'identité est de 8-12 pouces (20-30 centimètres) de la caméra, la pièce d'identité étant centrée par rapport à la caméra. Si les photos que vous soumettez sont rejetées, essayez de déplacer l’orientation de l’ordinateur ou de l’appareil photo pour modifier l’angle d’éclairage. La raison la plus courante de rejet est l'incapacité de lire le texte sur la pièce d'identité.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "Que faire si j'ai de la difficulté à tenir ma tête en position relativement à la caméra?",
|
||||
"id.verification.camera.help.difficulty.question.id": "Que faire si j'ai de la difficulté à tenir ma pièce d'identité en position relativement à la caméra?",
|
||||
"id.verification.camera.help.difficulty.answer": "Si vous avez besoin d'aide pour prendre une photo à soumettre, contactez le support {siteName} pour des suggestions supplémentaires.",
|
||||
"id.verification.id.photo.unclear.question": "L'image de votre pièce d'identité n'est pas claire ou trop floue?",
|
||||
"id.verification.id.tips.title": "Conseils utiles pour les pièces d'identité",
|
||||
"id.verification.id.tips.description": "Ensuite, nous vous demanderons de prendre une photo d'une pièce d'identité valide comportant votre nom complet et votre photo, exemple : un permis de conduire ou un passeport. Veuillez préparer votre pièce d'identité.",
|
||||
"id.verification.id.tips.list.well.lit": "Votre pièce d'identité est bien éclairée.",
|
||||
"id.verification.id.tips.list.clear": "Assurez-vous que vous pouvez voir votre photo et lire clairement votre nom.",
|
||||
"id.verification.id.photo.title.camera": "Prenez une photo de votre pièce d'identité",
|
||||
"id.verification.id.photo.title.upload": "Téléversez une photo de votre pièce d'identité",
|
||||
"id.verification.id.photo.preview.alt": "Aperçu de la pièce d'identité avec photo.",
|
||||
"id.verification.id.photo.instructions.camera": "Lorsque votre pièce d'identité est en place, utilisez le bouton Prendre une photo ci-dessous pour prendre votre photo. Veuillez utiliser un passeport, un permis de conduire ou une autre pièce d'identité comportant votre nom complet et une photo de votre visage.",
|
||||
"id.verification.id.photo.instructions.upload": "Veuillez téléverser une photo de votre pièce d'identité. Assurez-vous que la totalité de la pièce d'identité rentre dans le cadre et qu'elle est bien éclairée. La taille du fichier doit être inférieure à 10 Mo. Formats pris en charge :",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "Le fichier que vous avez sélectionné n'est pas un type d'image pris en charge. Veuillez choisir parmi les formats suivants :",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "Le fichier que vous avez sélectionné est trop volumineux. Veuillez réessayer avec un fichier de moins de 10 Mo.",
|
||||
"id.verification.name.check.title": "Vérifiez votre nom",
|
||||
"id.verification.name.check.instructions": "Le nom ci-dessous correspond-il au nom sur votre pièce d'identité avec photo? Si ce n'est pas le cas, mettez à jour le nom ci-dessous pour qu'il corresponde à votre pièce d'identité avec photo.",
|
||||
"id.verification.name.check.mismatch.information": "Si le nom ci-dessous ne correspond pas à votre pièce d'identité avec photo, votre vérification d'identité sera refusée.",
|
||||
"id.verification.name.error": "Veuillez entrer votre nom tel qu'il apparaît sur votre pièce d'identité avec photo.",
|
||||
"id.verification.account.name.warning.prefix": "Veuillez noter :",
|
||||
"id.verification.account.name.settings": "Paramètres du compte",
|
||||
"id.verification.name.label": "Nom",
|
||||
"id.verification.account.name.photo.alt": "Photo de votre pièce d'identité à soumettre.",
|
||||
"id.verification.review.title": "Vérifiez vos photos",
|
||||
"id.verification.review.description": "Assurez-vous que nous pourrons vérifier votre identité avec les photos et les informations fournies.",
|
||||
"id.verification.review.portrait.label": "Votre portrait",
|
||||
"id.verification.review.portrait.alt": "Photo de votre visage à soumettre.",
|
||||
"id.verification.review.portrait.retake": "Reprendre la photo de portrait",
|
||||
"id.verification.review.id.label": "Votre pièce d'identité",
|
||||
"id.verification.review.id.alt": "Photo à soumettre de votre pièce d'identité.",
|
||||
"id.verification.review.id.retake": "Reprendre la photo de la pièce d'identité",
|
||||
"id.verification.review.confirm": "Soumettre",
|
||||
"id.verification.submission.alert.error.face": "Une photo de votre visage est requise. Veuillez reprendre votre photo de portrait.",
|
||||
"id.verification.submission.alert.error.id": "Une photo de votre pièce d'identité est requise. Veuillez reprendre votre photo d'identité.",
|
||||
"id.verification.submission.alert.error.name": "Un nom de compte valide est requis. Veuillez mettre à jour le nom de votre compte pour qu'il corresponde au nom sur votre pièce d'identité.",
|
||||
"id.verification.submission.alert.error.unsupported": "Un ou plusieurs des fichiers que vous avez téléchargés sont dans un format non pris en charge. Veuillez choisir parmi les formats suivants :",
|
||||
"id.verification.review.error": "Page de Support {siteName}",
|
||||
"id.verification.submitted.title": "Vérification d'identité en cours",
|
||||
"id.verification.submitted.text": "Nous avons reçu vos informations et vérifions votre identité. Vous serez averti lorsque le processus de vérification sera terminé (généralement dans les 5 jours). En attendant, vous pouvez toujours accéder à tous les contenus de cours disponibles.",
|
||||
"id.verification.return.dashboard": "Retour à votre tableau de bord",
|
||||
"id.verification.return.course": "Revenir au cours",
|
||||
"id.verification.return.generic": "Retour",
|
||||
"id.verification.photo.upload.help.title": "Téléchargez une photo à la place",
|
||||
"id.verification.photo.camera.help.title": "Utilisez votre appareil photo à la place",
|
||||
"id.verification.photo.upload.help.text": "Si vous rencontrez des difficultés lors de l'utilisation de la capture de photo ci-dessus, vous souhaiterez peut-être télécharger une photo à la place. Pour télécharger une photo, cliquez sur le bouton ci-dessous.",
|
||||
"id.verification.photo.camera.help.text": "Si vous rencontrez des difficultés pour télécharger une photo ci-dessus, vous pouvez utiliser votre appareil photo à la place. Pour utiliser votre appareil photo, cliquez sur le bouton ci-dessous.",
|
||||
"id.verification.upload.help.button": "Passer en mode de téléchargement",
|
||||
"id.verification.camera.help.button": "Passer en mode caméra",
|
||||
"id.verification.request.camera.access.instructions": "Afin de prendre une photo à l'aide de votre webcam, vous pouvez recevoir une invite du navigateur pour accéder à votre caméra. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Les paramètres de votre compte sont gérés par {managerTitle}. Si le nom sur votre pièce d'identité avec photo ne correspond pas au nom de votre compte, veuillez contacter votre administrateur {profileDataManager} ou {support} pour obtenir de l'aide avant de terminer le processus de vérification des photos.",
|
||||
"id.verification.requirements.card.device.text": "Vous avez besoin d'un appareil équipé d'une caméra. Si vous recevez une invite du navigateur pour accéder à votre caméra, assurez-vous de cliquer sur {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Les paramètres de votre compte sont gérés par {managerTitle}. Si le nom sur votre pièce d'identité avec photo ne correspond pas au nom de votre compte, veuillez contacter votre administrateur {profileDataManager} ou {support} pour obtenir de l'aide.",
|
||||
"idv.submission.alert.error": "\n Nous avons rencontré une erreur technique en essayant de soumettre la vérification d'identité.\n Il peut s'agir d'un problème temporaire. Veuillez réessayer dans quelques minutes.\n Si le problème persiste, veuillez consulter {support_link} pour obtenir de l'aide.\n ",
|
||||
"id.verification.account.name.edit": "Modifier {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Courriel",
|
||||
"notification.preference.help.push": "Pousser",
|
||||
"notification.preference.load.more.courses": "Charger plus de cours",
|
||||
"notification.preference.guide.link": "comme détaillé ici",
|
||||
"notification.preference.guide.body": "Les notifications pour certaines activités sont activées par défaut,"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
354
src/i18n/messages/hi.json
Normal file
354
src/i18n/messages/hi.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "Your profile settings are managed by {managerTitle}. Contact your administrator or {support} for help.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Account Settings",
|
||||
"account.settings.loading.message": "Loading...",
|
||||
"account.settings.loading.error": "Error: {error}",
|
||||
"account.settings.banner.beta.language": "You have set your language to {beta_language}, which is currently not fully translated. You can help us translate this language fully by joining the Transifex community and adding translations from English for learners that speak {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Switch Back to {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Help Translate into {beta_language}",
|
||||
"account.settings.section.account.information": "Account Information",
|
||||
"account.settings.section.account.information.description": "These settings include basic information about your account.",
|
||||
"account.settings.section.profile.information": "Profile Information",
|
||||
"account.settings.section.demographics.information": "Optional Information",
|
||||
"account.settings.section.site.preferences": "Site Preferences",
|
||||
"account.settings.section.linked.accounts": "Linked Accounts",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.field.username": "Username",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.full.name": "Full name",
|
||||
"account.settings.field.full.name.empty": "Add name",
|
||||
"account.settings.field.full.name.help.text": "The name that is used for ID verification and that appears on your certificates.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "Email address (Sign in)",
|
||||
"account.settings.field.email.empty": "Add email address",
|
||||
"account.settings.field.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your email address.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "Recovery email address",
|
||||
"account.settings.field.secondary.email.empty": "Add a recovery email address",
|
||||
"account.settings.field.secondary.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your recovery email address.",
|
||||
"account.settings.email.field.confirmation.header": "Pending confirmation",
|
||||
"account.settings.field.dob": "Year of birth",
|
||||
"account.settings.field.dob.empty": "Add year of birth",
|
||||
"account.settings.field.year_of_birth.options.empty": "Select a year of birth",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Country",
|
||||
"account.settings.field.country.empty": "Add country",
|
||||
"account.settings.field.country.options.empty": "Select a Country",
|
||||
"account.settings.field.state": "State",
|
||||
"account.settings.field.state.empty": "Add state",
|
||||
"account.settings.field.state.options.empty": "Select a State",
|
||||
"account.settings.field.site.language": "Site language",
|
||||
"account.settings.field.site.language.help.text": "The language used throughout this site. This site is currently available in a limited number of languages.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Add level of education",
|
||||
"account.settings.field.education.levels.empty": "Select a level of education",
|
||||
"account.settings.field.education.levels.p": "Doctorate",
|
||||
"account.settings.field.education.levels.m": "Master's or professional degree",
|
||||
"account.settings.field.education.levels.b": "Bachelor's Degree",
|
||||
"account.settings.field.education.levels.a": "Associate's degree",
|
||||
"account.settings.field.education.levels.hs": "Secondary/high school",
|
||||
"account.settings.field.education.levels.jhs": "Junior secondary/junior high/middle school",
|
||||
"account.settings.field.education.levels.el": "Elementary/primary school",
|
||||
"account.settings.field.education.levels.none": "No formal education",
|
||||
"account.settings.field.education.levels.o": "Other education",
|
||||
"account.settings.field.gender": "Gender",
|
||||
"account.settings.field.gender.empty": "Add gender",
|
||||
"account.settings.field.gender.options.empty": "Select a gender",
|
||||
"account.settings.field.gender.options.f": "Female",
|
||||
"account.settings.field.gender.options.m": "Male",
|
||||
"account.settings.field.gender.options.o": "Other",
|
||||
"account.settings.field.language.proficiencies": "Spoken language",
|
||||
"account.settings.field.language.proficiencies.empty": "Add a spoken language",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Select a Language",
|
||||
"account.settings.field.time.zone": "Time zone",
|
||||
"account.settings.field.time.zone.empty": "Set time zone",
|
||||
"account.settings.field.time.zone.description": "Select the time zone for displaying course dates. If you do not specify a time zone, course dates, including assignment deadlines, will be displayed in your browser’s local time zone.",
|
||||
"account.settings.field.time.zone.default": "Default (Local Time Zone)",
|
||||
"account.settings.field.time.zone.all": "All time zones",
|
||||
"account.settings.field.time.zone.country": "Country time zones",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Add LinkedIn profile",
|
||||
"account.settings.jump.nav.delete.account": "Delete My Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Add Twitter profile",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Add Facebook profile",
|
||||
"account.settings.editable.field.action.save": "Save",
|
||||
"account.settings.editable.field.action.cancel": "Cancel",
|
||||
"account.settings.editable.field.action.edit": "Edit",
|
||||
"account.settings.static.field.empty": "No value set. Contact your {enterprise} administrator to make changes.",
|
||||
"account.settings.static.field.empty.no.admin": "No value set.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.delete.account.before.proceeding": "Before proceeding, please {actionLink}.",
|
||||
"account.settings.delete.account.header": "Delete My Account",
|
||||
"account.settings.delete.account.subheader": "We're sorry to see you go!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Want to change your email, name, or password instead?",
|
||||
"account.settings.delete.account.button": "Delete My Account",
|
||||
"account.settings.delete.account.please.activate": "activate your account",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "unlink all social media accounts",
|
||||
"account.settings.delete.account.modal.header": "Are you sure?",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "If you still wish to continue and delete your account, please enter your account password:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Yes, Delete",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancel",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Unable to delete account",
|
||||
"account.settings.delete.account.error.no.password": "A password is required",
|
||||
"account.settings.delete.account.error.invalid.password": "Password is incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Sorry, there was an error trying to process your request. Please try again later.",
|
||||
"account.settings.delete.account.modal.after.header": "We're sorry to see you go! Your account will be deleted shortly.",
|
||||
"account.settings.delete.account.modal.after.text": "Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.",
|
||||
"account.settings.delete.account.modal.after.button": "Close",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "An error occurred attempting to retrieve or save your account information. Please try again later.",
|
||||
"account.settings.field.demographics.gender": "Gender identity",
|
||||
"account.settings.field.demographics.gender.empty": "Add gender identity",
|
||||
"account.settings.field.demographics.gender.options.empty": "Select a gender identity",
|
||||
"account.settings.field.demographics.gender_description": "Gender identity description",
|
||||
"account.settings.field.demographics.gender_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.ethnicity": "Race/Ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Add race/ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Select all that apply",
|
||||
"account.settings.field.demographics.income": "Family income",
|
||||
"account.settings.field.demographics.income.empty": "Add family income",
|
||||
"account.settings.field.demographics.income.options.empty": "Select a family income range",
|
||||
"account.settings.field.demographics.military_history": "U.S. Military status",
|
||||
"account.settings.field.demographics.military_history.empty": "Add military status",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Select military status",
|
||||
"account.settings.field.demographics.learner_education_level": "Your education level",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.parent_education_level": "Parents/Guardians education level",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Select education level",
|
||||
"account.settings.field.demographics.work_status": "Employment status",
|
||||
"account.settings.field.demographics.work_status.empty": "Add employment status",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Select employment status",
|
||||
"account.settings.field.demographics.work_status_description": "Employment status description",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.current_work_sector": "Current work industry",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.future_work_sector": "Future work industry",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Select work industry",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technical support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "We've sent a message to {email}. Click the link in the message to reset your password. Didn't receive the message? Contact {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reset Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Your previous request is in progress, please try again in few moments.",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Sign in with {name}",
|
||||
"account.settings.sso.account.connected": "Linked",
|
||||
"account.settings.sso.account.disconnect.error": "There was a problem disconnecting this account. Contact support if the problem persists.",
|
||||
"account.settings.sso.unlink.account": "Unlink {name} account",
|
||||
"account.settings.sso.no.providers": "No accounts can be linked at this time.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"id.verification.next": "Next",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Example of a valid identification card with a full name and photo.",
|
||||
"id.verification.requirements.title": "Photo Verification Requirements",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.requirements.card.device.title": "Device with Camera",
|
||||
"id.verification.requirements.card.device.allow": "Allow",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "Privacy Information",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "We use your verification photos to confirm your identity and ensure the validity of your certificate.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.access.blocked.title": "Identity Verification",
|
||||
"id.verification.access.blocked.enrollment": "You are not currently enrolled in a course that requires identity verification.",
|
||||
"id.verification.access.blocked.pending": "You have already submitted your verification information. You will see a message on your dashboard when the verification process is complete (usually within 5 days).",
|
||||
"id.verification.photo.take": "Take Photo",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "Enable Face Detection",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "If checked, a box will appear around your face. Your face can be seen clearly if the box around it is blue. If your face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "If checked, a box will appear around the face on your ID card. The face can be seen clearly if the box around it is blue. If the face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.feedback.correct": "Face is in a good position.",
|
||||
"id.verification.photo.feedback.two.faces": "More than one face detected.",
|
||||
"id.verification.photo.feedback.no.faces": "No face detected.",
|
||||
"id.verification.photo.feedback.top.left": "Incorrect position. Top left.",
|
||||
"id.verification.photo.feedback.top.center": "Incorrect position. Top center.",
|
||||
"id.verification.photo.feedback.top.right": "Incorrect position. Top right.",
|
||||
"id.verification.photo.feedback.center.left": "Incorrect position. Center left.",
|
||||
"id.verification.photo.feedback.center.center": "Incorrect position. Too close to camera.",
|
||||
"id.verification.photo.feedback.center.right": "Incorrect position. Center right.",
|
||||
"id.verification.photo.feedback.bottom.left": "Incorrect position. Bottom left.",
|
||||
"id.verification.photo.feedback.bottom.center": "Incorrect position. Bottom center.",
|
||||
"id.verification.photo.feedback.bottom.right": "Incorrect position. Bottom right.",
|
||||
"id.verification.camera.access.title": "Camera Permissions",
|
||||
"id.verification.camera.access.title.success": "Camera Access Enabled",
|
||||
"id.verification.camera.access.title.failed": "Camera Access Failed",
|
||||
"id.verification.camera.access.click.allow": "Please make sure to click \"Allow\"",
|
||||
"id.verification.camera.access.enable": "Enable Camera",
|
||||
"id.verification.camera.access.problems": "Having problems?",
|
||||
"id.verification.camera.access.skip": "Skip and upload image files instead",
|
||||
"id.verification.camera.access.success": "Looks like your camera is working and ready.",
|
||||
"id.verification.camera.access.failure": "It looks like we're unable to access your camera. You will need to upload image files of you and your photo id.",
|
||||
"id.verification.camera.access.failure.temporary": "It looks like we're unable to access your camera. Please verify that your webcam is connected and that you have allowed your browser to access it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "To enable camera access in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Open Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigate to More > Settings.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "For Windows: Alt+F, Alt+E, or F10 followed by the spacebar",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "For Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Under the \"Privacy and security\" tab, select \"Site Settings\" and then \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Under \"Blocked,\" find \"edx.org\" and select it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "In the \"Permissions\" section, update the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "To enable camera access in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Open the Flash Player Settings Manager by navigating to Windows Settings > Control Panel > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Select the \"Camera and Mic\" tab, and then select the \"Camera and Microphone Settings by Site\" button.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choose \"edx.org\" from the list of websites and change the permissions by selecting \"Allow\" in the dropdown menu.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "To enable camera access in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Open Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Enter \"about:preferences\" in the URL bar.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Select the \"Privacy & Security\" tab, and navigate to the \"Permissions\" section.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Next to \"Camera,\" select the \"Settings…\" button.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "In the search bar, enter \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "In the status column for \"edx.org,\" select \"Allow\" from the drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Select \"Save Changes.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "To enable camera access in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Open Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Click on the Safari app menu, then select \"Preferences.\" You can also use Command+, as a keyboard shortcut.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Select the \"Websites\" tab and then select \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Select \"edx.org\" and change the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "Helpful Photo Tips",
|
||||
"id.verification.photo.tips.description": "Next, we'll need you to take a photo of your face. Please review the helpful tips below.",
|
||||
"id.verification.photo.tips.list.title": "Photo Tips",
|
||||
"id.verification.photo.tips.list.description": "To take a successful photo, make sure that:",
|
||||
"id.verification.photo.tips.list.well.lit": "Your face is well-lit.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Your entire face fits inside the frame.",
|
||||
"id.verification.portrait.photo.title.camera": "Take a Photo of Yourself",
|
||||
"id.verification.portrait.photo.instructions.camera": "When your face is in position, use the Take Photo button below to take your photo.",
|
||||
"id.verification.camera.help.sight.question": "What if I can't see the camera image or if I can't see my photo to determine which side is visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally the best position for a headshot is approximately 12-18 inches (30-45 centimeters) from the camera, with your head centered relative to the computer screen. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle.",
|
||||
"id.verification.camera.help.sight.answer.id": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally, the best position for a photo of an ID card is 8-12 inches (20-30 centimeters) from the camera, with the ID card centered relative to the camera. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle. The most common reason for rejection is inability to read the text on the ID card.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "What if I have difficulty holding my head in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.question.id": "What if I have difficulty holding my ID in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.id.tips.list.clear": "Ensure that you can see your photo and clearly read your name.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.preview.alt": "Preview of photo ID.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "Please Note:",
|
||||
"id.verification.account.name.settings": "Account Settings",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Photo of your ID to be submitted.",
|
||||
"id.verification.review.title": "Review Your Photos",
|
||||
"id.verification.review.description": "Make sure we can verify your identity with the photos and information you have provided.",
|
||||
"id.verification.review.portrait.label": "Your Portrait",
|
||||
"id.verification.review.portrait.alt": "Photo of your face to be submitted.",
|
||||
"id.verification.review.portrait.retake": "Retake Portrait Photo",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "Retake ID Photo",
|
||||
"id.verification.review.confirm": "Submit",
|
||||
"id.verification.submission.alert.error.face": "A photo of your face is required. Please retake your portrait photo.",
|
||||
"id.verification.submission.alert.error.id": "A photo of your ID card is required. Please retake your ID photo.",
|
||||
"id.verification.submission.alert.error.name": "A valid account name is required. Please update your account name to match the name on your ID.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "Identity Verification in Progress",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "Return to Your Dashboard",
|
||||
"id.verification.return.course": "Return to Course",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "In order to take a photo using your webcam, you may receive a browser prompt for access to your camera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "You need a device that has a camera. If you receive a browser prompt for access to your camera, please make sure to click {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\n We encountered a technical error while trying to submit ID verification.\n This might be a temporary issue, so please try again in a few minutes.\n If the problem persists, please go to {support_link} for help.\n ",
|
||||
"id.verification.account.name.edit": "Edit {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
354
src/i18n/messages/it.json
Normal file
354
src/i18n/messages/it.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "Your profile settings are managed by {managerTitle}. Contact your administrator or {support} for help.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Account Settings",
|
||||
"account.settings.loading.message": "Loading...",
|
||||
"account.settings.loading.error": "Error: {error}",
|
||||
"account.settings.banner.beta.language": "You have set your language to {beta_language}, which is currently not fully translated. You can help us translate this language fully by joining the Transifex community and adding translations from English for learners that speak {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Switch Back to {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Help Translate into {beta_language}",
|
||||
"account.settings.section.account.information": "Account Information",
|
||||
"account.settings.section.account.information.description": "These settings include basic information about your account.",
|
||||
"account.settings.section.profile.information": "Profile Information",
|
||||
"account.settings.section.demographics.information": "Optional Information",
|
||||
"account.settings.section.site.preferences": "Site Preferences",
|
||||
"account.settings.section.linked.accounts": "Linked Accounts",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.field.username": "Username",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.full.name": "Full name",
|
||||
"account.settings.field.full.name.empty": "Add name",
|
||||
"account.settings.field.full.name.help.text": "The name that is used for ID verification and that appears on your certificates.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "Email address (Sign in)",
|
||||
"account.settings.field.email.empty": "Add email address",
|
||||
"account.settings.field.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your email address.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "Recovery email address",
|
||||
"account.settings.field.secondary.email.empty": "Add a recovery email address",
|
||||
"account.settings.field.secondary.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your recovery email address.",
|
||||
"account.settings.email.field.confirmation.header": "Pending confirmation",
|
||||
"account.settings.field.dob": "Year of birth",
|
||||
"account.settings.field.dob.empty": "Add year of birth",
|
||||
"account.settings.field.year_of_birth.options.empty": "Select a year of birth",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Country",
|
||||
"account.settings.field.country.empty": "Add country",
|
||||
"account.settings.field.country.options.empty": "Select a Country",
|
||||
"account.settings.field.state": "State",
|
||||
"account.settings.field.state.empty": "Add state",
|
||||
"account.settings.field.state.options.empty": "Select a State",
|
||||
"account.settings.field.site.language": "Site language",
|
||||
"account.settings.field.site.language.help.text": "The language used throughout this site. This site is currently available in a limited number of languages.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Add level of education",
|
||||
"account.settings.field.education.levels.empty": "Select a level of education",
|
||||
"account.settings.field.education.levels.p": "Doctorate",
|
||||
"account.settings.field.education.levels.m": "Master's or professional degree",
|
||||
"account.settings.field.education.levels.b": "Bachelor's Degree",
|
||||
"account.settings.field.education.levels.a": "Associate's degree",
|
||||
"account.settings.field.education.levels.hs": "Secondary/high school",
|
||||
"account.settings.field.education.levels.jhs": "Junior secondary/junior high/middle school",
|
||||
"account.settings.field.education.levels.el": "Elementary/primary school",
|
||||
"account.settings.field.education.levels.none": "No formal education",
|
||||
"account.settings.field.education.levels.o": "Other education",
|
||||
"account.settings.field.gender": "Gender",
|
||||
"account.settings.field.gender.empty": "Add gender",
|
||||
"account.settings.field.gender.options.empty": "Select a gender",
|
||||
"account.settings.field.gender.options.f": "Female",
|
||||
"account.settings.field.gender.options.m": "Male",
|
||||
"account.settings.field.gender.options.o": "Other",
|
||||
"account.settings.field.language.proficiencies": "Spoken language",
|
||||
"account.settings.field.language.proficiencies.empty": "Add a spoken language",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Select a Language",
|
||||
"account.settings.field.time.zone": "Time zone",
|
||||
"account.settings.field.time.zone.empty": "Set time zone",
|
||||
"account.settings.field.time.zone.description": "Select the time zone for displaying course dates. If you do not specify a time zone, course dates, including assignment deadlines, will be displayed in your browser’s local time zone.",
|
||||
"account.settings.field.time.zone.default": "Default (Local Time Zone)",
|
||||
"account.settings.field.time.zone.all": "All time zones",
|
||||
"account.settings.field.time.zone.country": "Country time zones",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Add LinkedIn profile",
|
||||
"account.settings.jump.nav.delete.account": "Delete My Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Add Twitter profile",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Add Facebook profile",
|
||||
"account.settings.editable.field.action.save": "Save",
|
||||
"account.settings.editable.field.action.cancel": "Cancel",
|
||||
"account.settings.editable.field.action.edit": "Edit",
|
||||
"account.settings.static.field.empty": "No value set. Contact your {enterprise} administrator to make changes.",
|
||||
"account.settings.static.field.empty.no.admin": "No value set.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.delete.account.before.proceeding": "Before proceeding, please {actionLink}.",
|
||||
"account.settings.delete.account.header": "Delete My Account",
|
||||
"account.settings.delete.account.subheader": "We're sorry to see you go!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Want to change your email, name, or password instead?",
|
||||
"account.settings.delete.account.button": "Delete My Account",
|
||||
"account.settings.delete.account.please.activate": "activate your account",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "unlink all social media accounts",
|
||||
"account.settings.delete.account.modal.header": "Are you sure?",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "If you still wish to continue and delete your account, please enter your account password:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Yes, Delete",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancel",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Unable to delete account",
|
||||
"account.settings.delete.account.error.no.password": "A password is required",
|
||||
"account.settings.delete.account.error.invalid.password": "Password is incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Sorry, there was an error trying to process your request. Please try again later.",
|
||||
"account.settings.delete.account.modal.after.header": "We're sorry to see you go! Your account will be deleted shortly.",
|
||||
"account.settings.delete.account.modal.after.text": "Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.",
|
||||
"account.settings.delete.account.modal.after.button": "Close",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "An error occurred attempting to retrieve or save your account information. Please try again later.",
|
||||
"account.settings.field.demographics.gender": "Gender identity",
|
||||
"account.settings.field.demographics.gender.empty": "Add gender identity",
|
||||
"account.settings.field.demographics.gender.options.empty": "Select a gender identity",
|
||||
"account.settings.field.demographics.gender_description": "Gender identity description",
|
||||
"account.settings.field.demographics.gender_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.ethnicity": "Race/Ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Add race/ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Select all that apply",
|
||||
"account.settings.field.demographics.income": "Family income",
|
||||
"account.settings.field.demographics.income.empty": "Add family income",
|
||||
"account.settings.field.demographics.income.options.empty": "Select a family income range",
|
||||
"account.settings.field.demographics.military_history": "U.S. Military status",
|
||||
"account.settings.field.demographics.military_history.empty": "Add military status",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Select military status",
|
||||
"account.settings.field.demographics.learner_education_level": "Your education level",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.parent_education_level": "Parents/Guardians education level",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Select education level",
|
||||
"account.settings.field.demographics.work_status": "Employment status",
|
||||
"account.settings.field.demographics.work_status.empty": "Add employment status",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Select employment status",
|
||||
"account.settings.field.demographics.work_status_description": "Employment status description",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.current_work_sector": "Current work industry",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.future_work_sector": "Future work industry",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Select work industry",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technical support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "We've sent a message to {email}. Click the link in the message to reset your password. Didn't receive the message? Contact {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reset Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Your previous request is in progress, please try again in few moments.",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Sign in with {name}",
|
||||
"account.settings.sso.account.connected": "Linked",
|
||||
"account.settings.sso.account.disconnect.error": "There was a problem disconnecting this account. Contact support if the problem persists.",
|
||||
"account.settings.sso.unlink.account": "Unlink {name} account",
|
||||
"account.settings.sso.no.providers": "No accounts can be linked at this time.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"id.verification.next": "Next",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Example of a valid identification card with a full name and photo.",
|
||||
"id.verification.requirements.title": "Photo Verification Requirements",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.requirements.card.device.title": "Device with Camera",
|
||||
"id.verification.requirements.card.device.allow": "Allow",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "Privacy Information",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "We use your verification photos to confirm your identity and ensure the validity of your certificate.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.access.blocked.title": "Identity Verification",
|
||||
"id.verification.access.blocked.enrollment": "You are not currently enrolled in a course that requires identity verification.",
|
||||
"id.verification.access.blocked.pending": "You have already submitted your verification information. You will see a message on your dashboard when the verification process is complete (usually within 5 days).",
|
||||
"id.verification.photo.take": "Take Photo",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "Enable Face Detection",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "If checked, a box will appear around your face. Your face can be seen clearly if the box around it is blue. If your face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "If checked, a box will appear around the face on your ID card. The face can be seen clearly if the box around it is blue. If the face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.feedback.correct": "Face is in a good position.",
|
||||
"id.verification.photo.feedback.two.faces": "More than one face detected.",
|
||||
"id.verification.photo.feedback.no.faces": "No face detected.",
|
||||
"id.verification.photo.feedback.top.left": "Incorrect position. Top left.",
|
||||
"id.verification.photo.feedback.top.center": "Incorrect position. Top center.",
|
||||
"id.verification.photo.feedback.top.right": "Incorrect position. Top right.",
|
||||
"id.verification.photo.feedback.center.left": "Incorrect position. Center left.",
|
||||
"id.verification.photo.feedback.center.center": "Incorrect position. Too close to camera.",
|
||||
"id.verification.photo.feedback.center.right": "Incorrect position. Center right.",
|
||||
"id.verification.photo.feedback.bottom.left": "Incorrect position. Bottom left.",
|
||||
"id.verification.photo.feedback.bottom.center": "Incorrect position. Bottom center.",
|
||||
"id.verification.photo.feedback.bottom.right": "Incorrect position. Bottom right.",
|
||||
"id.verification.camera.access.title": "Camera Permissions",
|
||||
"id.verification.camera.access.title.success": "Camera Access Enabled",
|
||||
"id.verification.camera.access.title.failed": "Camera Access Failed",
|
||||
"id.verification.camera.access.click.allow": "Please make sure to click \"Allow\"",
|
||||
"id.verification.camera.access.enable": "Enable Camera",
|
||||
"id.verification.camera.access.problems": "Having problems?",
|
||||
"id.verification.camera.access.skip": "Skip and upload image files instead",
|
||||
"id.verification.camera.access.success": "Looks like your camera is working and ready.",
|
||||
"id.verification.camera.access.failure": "It looks like we're unable to access your camera. You will need to upload image files of you and your photo id.",
|
||||
"id.verification.camera.access.failure.temporary": "It looks like we're unable to access your camera. Please verify that your webcam is connected and that you have allowed your browser to access it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "To enable camera access in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Open Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigate to More > Settings.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "For Windows: Alt+F, Alt+E, or F10 followed by the spacebar",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "For Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Under the \"Privacy and security\" tab, select \"Site Settings\" and then \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Under \"Blocked,\" find \"edx.org\" and select it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "In the \"Permissions\" section, update the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "To enable camera access in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Open the Flash Player Settings Manager by navigating to Windows Settings > Control Panel > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Select the \"Camera and Mic\" tab, and then select the \"Camera and Microphone Settings by Site\" button.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choose \"edx.org\" from the list of websites and change the permissions by selecting \"Allow\" in the dropdown menu.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "To enable camera access in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Open Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Enter \"about:preferences\" in the URL bar.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Select the \"Privacy & Security\" tab, and navigate to the \"Permissions\" section.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Next to \"Camera,\" select the \"Settings…\" button.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "In the search bar, enter \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "In the status column for \"edx.org,\" select \"Allow\" from the drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Select \"Save Changes.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "To enable camera access in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Open Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Click on the Safari app menu, then select \"Preferences.\" You can also use Command+, as a keyboard shortcut.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Select the \"Websites\" tab and then select \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Select \"edx.org\" and change the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "Helpful Photo Tips",
|
||||
"id.verification.photo.tips.description": "Next, we'll need you to take a photo of your face. Please review the helpful tips below.",
|
||||
"id.verification.photo.tips.list.title": "Photo Tips",
|
||||
"id.verification.photo.tips.list.description": "To take a successful photo, make sure that:",
|
||||
"id.verification.photo.tips.list.well.lit": "Your face is well-lit.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Your entire face fits inside the frame.",
|
||||
"id.verification.portrait.photo.title.camera": "Take a Photo of Yourself",
|
||||
"id.verification.portrait.photo.instructions.camera": "When your face is in position, use the Take Photo button below to take your photo.",
|
||||
"id.verification.camera.help.sight.question": "What if I can't see the camera image or if I can't see my photo to determine which side is visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally the best position for a headshot is approximately 12-18 inches (30-45 centimeters) from the camera, with your head centered relative to the computer screen. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle.",
|
||||
"id.verification.camera.help.sight.answer.id": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally, the best position for a photo of an ID card is 8-12 inches (20-30 centimeters) from the camera, with the ID card centered relative to the camera. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle. The most common reason for rejection is inability to read the text on the ID card.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "What if I have difficulty holding my head in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.question.id": "What if I have difficulty holding my ID in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.id.tips.list.clear": "Ensure that you can see your photo and clearly read your name.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.preview.alt": "Preview of photo ID.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "Please Note:",
|
||||
"id.verification.account.name.settings": "Account Settings",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Photo of your ID to be submitted.",
|
||||
"id.verification.review.title": "Review Your Photos",
|
||||
"id.verification.review.description": "Make sure we can verify your identity with the photos and information you have provided.",
|
||||
"id.verification.review.portrait.label": "Your Portrait",
|
||||
"id.verification.review.portrait.alt": "Photo of your face to be submitted.",
|
||||
"id.verification.review.portrait.retake": "Retake Portrait Photo",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "Retake ID Photo",
|
||||
"id.verification.review.confirm": "Submit",
|
||||
"id.verification.submission.alert.error.face": "A photo of your face is required. Please retake your portrait photo.",
|
||||
"id.verification.submission.alert.error.id": "A photo of your ID card is required. Please retake your ID photo.",
|
||||
"id.verification.submission.alert.error.name": "A valid account name is required. Please update your account name to match the name on your ID.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "Identity Verification in Progress",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "Return to Your Dashboard",
|
||||
"id.verification.return.course": "Return to Course",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "In order to take a photo using your webcam, you may receive a browser prompt for access to your camera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "You need a device that has a camera. If you receive a browser prompt for access to your camera, please make sure to click {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\n We encountered a technical error while trying to submit ID verification.\n This might be a temporary issue, so please try again in a few minutes.\n If the problem persists, please go to {support_link} for help.\n ",
|
||||
"id.verification.account.name.edit": "Edit {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
354
src/i18n/messages/it_IT.json
Normal file
354
src/i18n/messages/it_IT.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "L'account {provider} che hai selezionato è già collegato a un altro account {siteName}.",
|
||||
"account.settings.message.managed.settings": "Le impostazioni del tuo profilo sono gestite da {managerTitle}. Contatta il tuo amministratore o {support} per assistenza. ",
|
||||
"account.settings.message.managed.settings.support": "supporto",
|
||||
"account.settings.page.heading": "Impostazioni account",
|
||||
"account.settings.loading.message": "Caricamento...",
|
||||
"account.settings.loading.error": "Errore: {error}",
|
||||
"account.settings.banner.beta.language": "Hai impostato {beta_language} come lingua, che non è attualmente completamente tradotta. Puoi aiutarci a tradurre completamente questa lingua unendoti alla comunità Transifex e aggiungendo traduzioni dall'inglese per studenti che parlano {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Torna a {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Aiutaci a Tradurre in {beta_language}",
|
||||
"account.settings.section.account.information": "Informazioni generali",
|
||||
"account.settings.section.account.information.description": "Questi campi includono informazioni personali relative al tuo account",
|
||||
"account.settings.section.profile.information": "Informazioni profilo",
|
||||
"account.settings.section.demographics.information": "Informazioni facoltative",
|
||||
"account.settings.section.site.preferences": "Preferenze del sito",
|
||||
"account.settings.section.linked.accounts": "Account collegati",
|
||||
"account.settings.section.linked.accounts.description": "Puoi collegare i tuoi account di identità per semplificare l'accesso a {siteName}.",
|
||||
"account.settings.field.username": "Nome utente",
|
||||
"account.settings.field.username.help.text": "Il nome che ti identifica su {siteName}. Non puoi cambiare il tuo nome utente.",
|
||||
"account.settings.field.full.name": "Nome e Cognome",
|
||||
"account.settings.field.full.name.empty": "Aggiungi nome",
|
||||
"account.settings.field.full.name.help.text": "Il nome che utilizzeremo per identificarti e che comparirà sui tuoi attestati.",
|
||||
"account.settings.field.full.name.help.text.default": "Il nome che appare sul tuo profilo pubblico.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "Questo nome è selezionato per apparire sui tuoi certificati e record pubblici.",
|
||||
"account.settings.field.name.verified": "Nome verificato",
|
||||
"account.settings.field.name.verified.help.text.verified": "Questo nome è stato verificato da un documento d'identità con foto.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "Questo nome è stato verificato dalla sorveglianza.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Questo nome è stato verificato da un documento d'identità con foto ed è stato selezionato per apparire sui tuoi certificati e documenti pubblici.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "Questo nome è stato verificato dalla sorveglianza ed è selezionato per apparire nei certificati e nei registri pubblici.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "La verifica è stata presentata. Questo di solito richiede 48 ore o meno. Il nome verificato non può essere modificato in questo momento.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Il tuo esame controllato è stato inviato. Il nome verificato non può essere modificato in questo momento. Si prega di ricontrollare tra 2-5 giorni.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "Quando la verifica dell'identità ha esito positivo, questo nome verrà visualizzato sui certificati e sui record pubblici. Il nome verificato non può essere modificato in questo momento.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Una volta che il tuo esame supervisionato ha superato la revisione, questo nome apparirà sul tuo certificato e nei registri pubblici. Al momento non è possibile modificare il nome verificato.",
|
||||
"account.settings.field.name.verified.verification.help": "Inserisci il tuo nome come appare sulla tua carta d'identità per studenti, lavoro o governo non scaduta.",
|
||||
"account.settings.field.full.name.help.text.submitted": "La verifica è stata presentata. Questo di solito richiede 48 ore o meno. Il nome completo non può essere modificato in questo momento.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Il tuo esame controllato è stato inviato. Il nome completo non può essere modificato in questo momento. Si prega di ricontrollare tra 2-5 giorni.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "Quando la verifica dell'identità ha esito positivo, questo nome verrà visualizzato sui certificati e sui record pubblici. Il nome completo non può essere modificato in questo momento.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Una volta che il tuo esame supervisionato ha superato la revisione, questo nome apparirà sui tuoi certificati e record pubblici. Il nome completo non può essere modificato in questo momento.",
|
||||
"account.settings.field.name.verified.success.message": "La tua richiesta di verifica dell'identità è stata completata con successo. Ora hai la possibilità di selezionare il nome che preferisci che appaia sui tuoi certificati e registri pubblici.",
|
||||
"account.settings.field.name.verified.success.message.header": "La tua richiesta di cambio nome è completa!",
|
||||
"account.settings.field.name.verified.failure.message": "Il tuo tentativo di verifica dell'identità più recente non è andato a buon fine. Le impostazioni relative all'account sono state ripristinate.",
|
||||
"account.settings.field.name.verified.failure.message.header": "Non siamo stati in grado di verificare la tua identità.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Scopri di più sulla verifica dell'ID",
|
||||
"account.settings.field.name.verified.submitted.message": "La tua richiesta di verifica dell'identità è stata inviata e di solito richiede dalle 24 alle 48 ore per essere completata.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "Quando la tua richiesta viene approvata, il tuo nome aggiornato apparirà su tutti i certificati associati e i record pubblici.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "La tua richiesta di cambio nome è quasi completa!",
|
||||
"account.settings.field.email": "Indirizzo email (Accesso)",
|
||||
"account.settings.field.email.empty": "Aggiungi indirizzo email",
|
||||
"account.settings.field.email.confirmation": "Abbiamo inviato un messaggio di conferma a {value}. Fai clic sul link nel messaggio per aggiornare il tuo indirizzo e-mail. ",
|
||||
"account.settings.field.email.help.text": "Riceverai messaggi da {siteName} e dai team del corso a questo indirizzo.",
|
||||
"account.settings.field.secondary.email": "Indirizzo email di recupero",
|
||||
"account.settings.field.secondary.email.empty": "Aggiungi un indirizzo email di recupero",
|
||||
"account.settings.field.secondary.email.confirmation": "Abbiamo inviato un messaggio di conferma a {value}. Fai clic sul link nel messaggio per aggiornare il tuo indirizzo e-mail di recupero. ",
|
||||
"account.settings.email.field.confirmation.header": "In attesa di conferma",
|
||||
"account.settings.field.dob": "Anno di nascita",
|
||||
"account.settings.field.dob.empty": "Aggiungi anno di nascita",
|
||||
"account.settings.field.year_of_birth.options.empty": "Seleziona un anno di nascita",
|
||||
"account.settings.field.dob.month": "Mese ",
|
||||
"account.settings.field.dob.year": "Anno ",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Si prega di confermare la data di nascita",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Seleziona un mese di nascita",
|
||||
"account.settingsfield.dob.error.general": "Si è verificato un errore tecnico. Per favore riprova.",
|
||||
"account.settings.field.country": "Paese",
|
||||
"account.settings.field.country.empty": "Aggiungi paese",
|
||||
"account.settings.field.country.options.empty": "Seleziona un paese",
|
||||
"account.settings.field.state": "Stato",
|
||||
"account.settings.field.state.empty": "Aggiungi stato",
|
||||
"account.settings.field.state.options.empty": "Seleziona uno stato",
|
||||
"account.settings.field.site.language": "Lingua sito",
|
||||
"account.settings.field.site.language.help.text": "Lingua usata in questo sito. Questo sito è attualmente disponibile in un numero limitato di lingue.",
|
||||
"account.settings.field.education": "Educazione",
|
||||
"account.settings.field.education.empty": "Aggiungi livello di istruzione",
|
||||
"account.settings.field.education.levels.empty": "Seleziona un livello di istruzione",
|
||||
"account.settings.field.education.levels.p": "Dottorato",
|
||||
"account.settings.field.education.levels.m": "Laurea magistrale o titolo accademico professionale",
|
||||
"account.settings.field.education.levels.b": "Laurea",
|
||||
"account.settings.field.education.levels.a": "Diploma Professionale",
|
||||
"account.settings.field.education.levels.hs": "Scuole superiori/liceo",
|
||||
"account.settings.field.education.levels.jhs": "Scuole Medie",
|
||||
"account.settings.field.education.levels.el": "Scuola Primaria/Elementare",
|
||||
"account.settings.field.education.levels.none": "Nessun livello educativo formale",
|
||||
"account.settings.field.education.levels.o": "Altro livello educativo",
|
||||
"account.settings.field.gender": "Sesso",
|
||||
"account.settings.field.gender.empty": "Aggiungi genere",
|
||||
"account.settings.field.gender.options.empty": "Seleziona un genere",
|
||||
"account.settings.field.gender.options.f": "Donna",
|
||||
"account.settings.field.gender.options.m": "Uomo",
|
||||
"account.settings.field.gender.options.o": "Altro",
|
||||
"account.settings.field.language.proficiencies": "Lingua parlata",
|
||||
"account.settings.field.language.proficiencies.empty": "Aggiungi lingua parlata",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Seleziona una lingua",
|
||||
"account.settings.field.time.zone": "Fuso orario",
|
||||
"account.settings.field.time.zone.empty": "Imposta fuso orario",
|
||||
"account.settings.field.time.zone.description": "Seleziona il fuso orario per la visualizzazione delle date del corso. Se non specifichi un fuso orario, le date del corso, comprese le scadenze dei compiti, verranno visualizzate nel fuso orario locale del tuo browser. ",
|
||||
"account.settings.field.time.zone.default": "Predefinito (Fuso orario locale)",
|
||||
"account.settings.field.time.zone.all": "Tutti i fusi orari",
|
||||
"account.settings.field.time.zone.country": "Fuso orario del paese",
|
||||
"account.settings.section.social.media": "Link ai Social Media ",
|
||||
"account.settings.section.social.media.description": "Facoltativamente, collega i tuoi account personali alle icone dei social media sul tuo profilo {siteName}.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Aggiungi profilo LinkedIn",
|
||||
"account.settings.jump.nav.delete.account": "Elimina il mio Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Aggiungi profilo Twitter",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Aggiungi profilo Facebook",
|
||||
"account.settings.editable.field.action.save": "Salva",
|
||||
"account.settings.editable.field.action.cancel": "Annulla",
|
||||
"account.settings.editable.field.action.edit": "Modifica",
|
||||
"account.settings.static.field.empty": "Nessun valore impostato. Contatta il tuo amministratore {enterprise} per apportare modifiche. ",
|
||||
"account.settings.static.field.empty.no.admin": "Nessun valore impostato. ",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "Se selezionato, questo nome apparirà sui tuoi certificati e record pubblici.",
|
||||
"account.settings.field.name.modal.certificate.title": "Scegli un nome preferito per certificati e record pubblici",
|
||||
"account.settings.field.name.modal.certificate.select": "Seleziona un nome",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Nome e Cognome",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Nome verificato",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Scegli il nome",
|
||||
"account.settings.delete.account.before.proceeding": "Prima di procedere, {actionLink}.",
|
||||
"account.settings.delete.account.header": "Elimina il mio Account",
|
||||
"account.settings.delete.account.subheader": "Ci dispiace che tu ci lasci!",
|
||||
"account.settings.delete.account.text.1": "Nota: la cancellazione del tuo account e dei tuoi dati personali è permanente e non può essere annullata. {siteName} non sarà in grado di recuperare il tuo account o i dati eliminati.",
|
||||
"account.settings.delete.account.text.2": "Una volta che il tuo account è stato eliminato, non potrai utilizzarlo per seguire corsi su {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Una volta che il tuo account è stato eliminato, non potrai utilizzarlo per seguire corsi sull'app edX, edx.org o qualsiasi altro sito ospitato da edX. Ciò include l'accesso a edx.org dal sistema del tuo datore di lavoro o università e l'accesso ai siti privati offerti da MIT Open Learning, Wharton Executive Education e Harvard Medical School. ",
|
||||
"account.settings.delete.account.text.3.link": "Segui queste istruzioni per stampare o scaricare un certificato",
|
||||
"account.settings.delete.account.text.warning": "Avviso: l'eliminazione dell'account è permanente. Si prega di leggere attentamente quanto sopra prima di procedere. Questa è un'azione irreversibile e non potrai più utilizzare la stessa email su {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Vuoi cambiare invece la tua email, il nome o la password? ",
|
||||
"account.settings.delete.account.button": "Elimina il mio Account",
|
||||
"account.settings.delete.account.please.activate": "attiva il tuo account",
|
||||
"account.settings.delete.account.please.confirm": "conferma il tuo account",
|
||||
"account.settings.delete.account.please.unlink": "scollega tutti gli account social media",
|
||||
"account.settings.delete.account.modal.header": "Sei sicuro?",
|
||||
"account.settings.delete.account.modal.text.1": "Hai selezionato \"Elimina il mio Account\". L'eliminazione del tuo account e dei tuoi dati personali è permanente e non può essere annullata. {siteName} non sarà in grado di recuperare il tuo account o i dati eliminati.",
|
||||
"account.settings.delete.account.modal.text.2": "Se procedi, non potrai utilizzare questo account per seguire corsi su {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "Se procedi, non sarai in grado di utilizzare questo account per seguire corsi sull'app edX, edx.org o su qualsiasi altro sito ospitato da edX. Ciò include l'accesso a edx.org dal sistema del tuo datore di lavoro o università e l'accesso ai siti privati offerti da MIT Open Learning, Wharton Executive Education e Harvard Medical School. ",
|
||||
"account.settings.delete.account.modal.enter.password": "Se desideri comunque continuare ed eliminare il tuo account, inserisci la password del tuo account:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Sì, Elimina",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Annulla",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Impossibile eliminare l'account",
|
||||
"account.settings.delete.account.error.no.password": "La password è obbligatoria",
|
||||
"account.settings.delete.account.error.invalid.password": "Password non corretta",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Si è verificato un errore nell'elaborazione della tua richiesta. Prova di nuovo più tardi.",
|
||||
"account.settings.delete.account.modal.after.header": "Ci dispiace che tu ci lasci! Il tuo account verrà eliminato a breve.",
|
||||
"account.settings.delete.account.modal.after.text": "L'eliminazione dell'account, inclusa la rimozione dagli elenchi di email, potrebbe richiedere alcune settimane per essere completamente elaborata dal nostro sistema. Se desideri disattivare le e-mail prima di allora, annulla l'iscrizione dal piè di pagina di una qualsiasi e-mail.",
|
||||
"account.settings.delete.account.modal.after.button": "Chiudi",
|
||||
"account.settings.delete.account.text.3.edX": "Potresti anche perdere l'accesso ai certificati verificati e ad altre credenziali del programma quali i certificati MicroMasters. È possibile farne una copia per i propri archivi prima di procedere con l'eliminazione. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "Potresti anche perdere l'accesso ai certificati verificati e ad altre credenziali del programma. È possibile farne una copia per i propri archivi prima di procedere con l'eliminazione.",
|
||||
"account.settings.message.demographics.service.issue": "Si è verificato un errore durante il tentativo di recuperare o salvare le informazioni dell'account. Prova di nuovo più tardi.",
|
||||
"account.settings.field.demographics.gender": "Identità di genere",
|
||||
"account.settings.field.demographics.gender.empty": "Aggiungi identità di genere",
|
||||
"account.settings.field.demographics.gender.options.empty": "Seleziona un'identità di genere",
|
||||
"account.settings.field.demographics.gender_description": "Descrizione identità di genere",
|
||||
"account.settings.field.demographics.gender_description.empty": "Immetti descrizione",
|
||||
"account.settings.field.demographics.ethnicity": "Identità razziale/etnica",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Aggiungi identità razziale/etnica",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Seleziona tutte le opzioni valide",
|
||||
"account.settings.field.demographics.income": "Reddito familiare",
|
||||
"account.settings.field.demographics.income.empty": "Aggiungi reddito familiare",
|
||||
"account.settings.field.demographics.income.options.empty": "Seleziona un intervallo di reddito familiare",
|
||||
"account.settings.field.demographics.military_history": "Stato militare statunitense",
|
||||
"account.settings.field.demographics.military_history.empty": "Aggiungi stato militare",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Seleziona stato militare",
|
||||
"account.settings.field.demographics.learner_education_level": "Il tuo livello di istruzione",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Aggiungi livello di istruzione",
|
||||
"account.settings.field.demographics.parent_education_level": "Livello di istruzione genitori/tutori",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Aggiungi livello di istruzione",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Seleziona livello di istruzione",
|
||||
"account.settings.field.demographics.work_status": "Occupazione",
|
||||
"account.settings.field.demographics.work_status.empty": "Aggiungi occupazione",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Seleziona occupazione",
|
||||
"account.settings.field.demographics.work_status_description": "Descrizione occupazione",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Immetti descrizione",
|
||||
"account.settings.field.demographics.current_work_sector": "Settore lavorativo attuale",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Aggiungi settore lavorativo ",
|
||||
"account.settings.field.demographics.future_work_sector": "Settore lavorativo futuro",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Aggiungi un settore lavorativo",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Seleziona settore lavorativo",
|
||||
"account.settings.section.demographics.why": "Perché {siteName} raccoglie queste informazioni?",
|
||||
"account.settings.name.change.title.id": "Questa modifica del nome richiede la verifica dell'identità",
|
||||
"account.settings.name.change.title.begin": "Prima di iniziare",
|
||||
"account.settings.name.change.warning.one": "Avvertenza: questa azione aggiorna il nome che appare su tutti i certificati che sono stati guadagnati su questo account in passato e su tutti i certificati che stai attualmente guadagnando o che guadagnerai in futuro.",
|
||||
"account.settings.name.change.warning.two": "Questa azione non può essere annullata senza verificare la tua identità.",
|
||||
"account.settings.name.change.id.name.label": "Inserisci il tuo nome come appare sulla tua carta d'identità per studenti, lavoro o governo non scaduta.",
|
||||
"account.settings.name.change.id.name.placeholder": "Inserisci il nome sulla tua foto ID",
|
||||
"account.settings.name.change.error.valid.name": "Per favore inserire un nome valido.",
|
||||
"account.settings.name.change.error.general": "Si è verificato un errore tecnico. Per favore riprova.",
|
||||
"account.settings.name.change.continue": "Continua",
|
||||
"account.settings.name.change.cancel": "Annulla",
|
||||
"error.notfound.message": "La pagina che stai cercando non è disponibile o si è verificato un errore nell'URL. Controlla l'URL e riprova. ",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "supporto tecnico",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "Abbiamo inviato un messaggio a {email}. Fare clic sul collegamento nel messaggio per reimpostare la password. Non hai ricevuto il messaggio? Contatta {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reimposta Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "La tua richiesta precedente è in corso di elaborazione, riprova tra qualche istante. ",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Accedi con {name}",
|
||||
"account.settings.sso.account.connected": "Collegato",
|
||||
"account.settings.sso.account.disconnect.error": "Si è verificato un problema durante la disconnessione di questo account. Contatta l'assistenza se il problema persiste.",
|
||||
"account.settings.sso.unlink.account": "Scollega account {name}",
|
||||
"account.settings.sso.no.providers": "Al momento non è possibile collegare alcun account.",
|
||||
"account.page.title": "Conto | {siteName}",
|
||||
"id.verification.access.blocked.denied": "Non possiamo verificare la tua identità in questo momento. Se devi ancora attivare il tuo account, controlla la tua cartella spam per l'email di attivazione da {email}.",
|
||||
"id.verification.next": "Prossimo",
|
||||
"id.verification.support": "supporto",
|
||||
"id.verification.example.card.alt": "Esempio di carta d'identità in corso di validità con nome completo e foto.",
|
||||
"id.verification.requirements.title": "Requisiti per la verifica tramite foto",
|
||||
"id.verification.requirements.description": "Per completare la verifica della foto, avrai bisogno di quanto segue:",
|
||||
"id.verification.requirements.card.device.title": "Dispositivo con fotocamera",
|
||||
"id.verification.requirements.card.device.allow": "Permetti",
|
||||
"id.verification.requirements.card.id.title": "Carta d'identità con foto",
|
||||
"id.verification.requirements.card.id.text": "Hai bisogno di una carta d'identità valida che contenga il tuo nome completo e foto, come una patente di guida o un passaporto.",
|
||||
"id.verification.privacy.title": "Informazioni sulla Privacy",
|
||||
"id.verification.privacy.need.photo.question": "Perché {siteName} necessita della mia foto?",
|
||||
"id.verification.privacy.need.photo.answer": "Utilizziamo le tue foto di verifica per confermare la tua identità e garantire la validità del tuo certificato.",
|
||||
"id.verification.privacy.do.with.photo.question": "Cosa fa {siteName} con questa foto?",
|
||||
"id.verification.privacy.do.with.photo.answer": "Criptiamo in modo sicuro la tua foto e la inviamo al nostro servizio di autorizzazione per la verifica. Al termine del processo di verifica la tua foto e le tue informazioni non vengono salvate e non sono visibili su {siteName}.",
|
||||
"id.verification.access.blocked.title": "Verifica identità",
|
||||
"id.verification.access.blocked.enrollment": "Non sei attualmente iscritto a un corso che richiede la verifica dell'identità. ",
|
||||
"id.verification.access.blocked.pending": "Hai già inviato le tue informazioni di verifica. Una volta completato il processo di verifica (di solito entro 5 giorni) verrà visualizzato un messaggio sulla dashboard. ",
|
||||
"id.verification.photo.take": "Scatta foto",
|
||||
"id.verification.photo.retake": "Scattare di nuovo la foto?",
|
||||
"id.verification.photo.enable.detection": "Abilitata rilevamento facciale",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "Se questa opzione è selezionata, apparirà un riquadro intorno al tuo viso. Se la casella ha un contorno è blu, il tuo viso sarà chiaramente visibile. Se il tuo viso non è in una buona posizione o non è rilevabile, il contorno del riquadro sarà rosso.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "Se questa opzione è selezionata, apparirà un riquadro intorno al tuo viso sul tuo documento d'identità. Se la casella ha un contorno è blu, il viso sarà chiaramente visibile. Se il viso non è in una buona posizione o non è rilevabile, il contorno del riquadro sarà rosso.",
|
||||
"id.verification.photo.feedback.correct": "Il viso è in una buona posizione.",
|
||||
"id.verification.photo.feedback.two.faces": "Rilevato più di un viso.",
|
||||
"id.verification.photo.feedback.no.faces": "Nessun viso rilevato.",
|
||||
"id.verification.photo.feedback.top.left": "Posizione non corretta. In alto a sinistra.",
|
||||
"id.verification.photo.feedback.top.center": "Posizione non corretta. In alto al centro.",
|
||||
"id.verification.photo.feedback.top.right": "Posizione non corretta. In alto a destra.",
|
||||
"id.verification.photo.feedback.center.left": "Posizione non corretta. Centro sinistra.",
|
||||
"id.verification.photo.feedback.center.center": "Posizione non corretta. Fotocamera troppo vicina.",
|
||||
"id.verification.photo.feedback.center.right": "Posizione non corretta. Centro destra.",
|
||||
"id.verification.photo.feedback.bottom.left": "Posizione non corretta. In basso a sinistra.",
|
||||
"id.verification.photo.feedback.bottom.center": "Posizione non corretta. In basso al centro.",
|
||||
"id.verification.photo.feedback.bottom.right": "Posizione non corretta. In basso a destra.",
|
||||
"id.verification.camera.access.title": "Autorizzazioni fotocamera",
|
||||
"id.verification.camera.access.title.success": "Accesso alla fotocamera abilitato",
|
||||
"id.verification.camera.access.title.failed": "Accesso alla fotocamera non riuscito",
|
||||
"id.verification.camera.access.click.allow": "Fai clic su \"Consenti\"",
|
||||
"id.verification.camera.access.enable": "Abilita fotocamera",
|
||||
"id.verification.camera.access.problems": "Ci sono problemi?",
|
||||
"id.verification.camera.access.skip": "Ignora e carica file immagine",
|
||||
"id.verification.camera.access.success": "La fotocamera è funzionante e pronta",
|
||||
"id.verification.camera.access.failure": "Impossibile accedere alla tua fotocamera. Dovrai caricare i tuoi file immagine e il tuo documento d'identità con foto. ",
|
||||
"id.verification.camera.access.failure.temporary": "Impossibile accedere alla tua fotocamera. Verifica che la tua webcam sia collegata e di aver autorizzato il tuo browser ad accedervi.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "Per abilitare l'accesso alla fotocamera in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Apri Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Accedi a Altro > Impostazioni.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "Per Windows: Alt+F, Alt+E, o F10 seguito dalla barra spaziatrice",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "Per Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Nella scheda \"Privacy e sicurezza\" seleziona \"Impostazioni sito\" e quindi \"Fotocamera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "In \"Blocca,\" trova \"edx.org\" e selezionalo.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "Nella sezione \"Autorizzazioni\" aggiorna le autorizzazioni della fotocamera in \"Consenti.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "Per abilitare l'accesso alla fotocamera in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Apri il Gestore Impostazioni Flash Player Settings Manager accedendo alle Impostazioni di Windows > Pannello di Controllo > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Seleziona la scheda \"Fotocamera e Microfono\" e seleziona il pulsante \"Impostazioni Fotocamera e Microfono per Sito\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Selezioa \"edx.org\" dall'elenco di siti web e modifica le impostazioni selezionando \"Consenti\" nel menu a discesa.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "Per abilitare l'accesso alla fotocamera in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Apri Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Immetti \"about:preferences\" nella barra degli URL.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Seleziona la scheda \"Privacy & sicurezza\" e accedi alla sezione \"Permessi\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Di fianco a \"Fotocamera\" seleziona il pulsante \"Impostazioni…\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "Nella barra di ricerca immetti \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "Nella colonna Stato per \"edx.org,\" seleziona \"Consenti\" dal menu a discesa.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Seleziona \"Salva modifiche.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "Per abilitare l'accesso alla fotocamera in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Apri Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Fai clic sul menu App Safari e seleziona \"Preferenze\", puoi anche utilizzare Command+, come tasto rapido da tastiera.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Seleziona la scheda \"Siti web\" e quindi seleziona \"Fotocamera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Seleziona \"edx.org\" e modifica le autorizzazioni della fotocamera in \"Consenti.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "Il tuo browser non supporta l'accesso alla fotocamera.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "Il browser Chrome attualmente non supporta l'accesso alla fotocamera sui dispositivi iOS, quali iPhone e iPad. ",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Utilizza un altro browser per completare la verifica dell'identità. ",
|
||||
"id.verification.photo.tips.title": "Suggerimenti utili per la foto",
|
||||
"id.verification.photo.tips.description": "Successivamente, dovrai scattare una foto del tuo viso. Consulta i suggerimenti utili che seguono.",
|
||||
"id.verification.photo.tips.list.title": "Suggerimento per la foto",
|
||||
"id.verification.photo.tips.list.description": "Per scattare correttamente una fotografia, assicurati che:",
|
||||
"id.verification.photo.tips.list.well.lit": "Che il tuo viso sia ben illuminato.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Che il viso si adatti completamente al riquadro.",
|
||||
"id.verification.portrait.photo.title.camera": "Scatta una Foto di te stesso",
|
||||
"id.verification.portrait.photo.instructions.camera": "Quando il tuo viso è in posizione, usa il pulsante Scatta foto in basso per scattare la tua foto. ",
|
||||
"id.verification.camera.help.sight.question": "Cosa succede se non riesco a vedere l'immagine della fotocamera o se non riesco a vedere la mia foto per determinare quale lato è visibile? ",
|
||||
"id.verification.camera.help.sight.answer.portrait": "Potresti essere in grado di completare la procedura di acquisizione dell'immagine senza assistenza, ma potrebbero essere necessari un paio di tentativi di invio per ottenere il corretto posizionamento della fotocamera. Il posizionamento ottimale della fotocamera varia a seconda del computer, ma generalmente la posizione migliore per lo scatto di un viso è a circa 12-18 pollici (30-45 centimetri) dalla fotocamera, con la testa centrata rispetto allo schermo del computer. Se le foto che invii vengono rifiutate, prova a spostare l'orientamento del computer o della fotocamera per modificare l'angolo di illuminazione. ",
|
||||
"id.verification.camera.help.sight.answer.id": "Potresti essere in grado di completare la procedura di acquisizione dell'immagine senza assistenza, ma potrebbero essere necessari un paio di tentativi di invio per ottenere il corretto posizionamento della fotocamera. Il posizionamento ottimale della fotocamera varia a seconda del computer, ma generalmente la posizione migliore per una foto di una carta d'identità è di 8-12 pollici (20-30 centimetri) dalla fotocamera, con la carta d'identità centrata rispetto alla fotocamera. Se le foto che invii vengono rifiutate, prova a spostare l'orientamento del computer o della fotocamera per modificare l'angolo di illuminazione. Il motivo più comune per il rifiuto è rappresentato dall'impossibilità di leggere il testo sulla carta d'identità. ",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "Cosa succede se ho difficoltà a tenere la testa in posizione rispetto alla telecamera? ",
|
||||
"id.verification.camera.help.difficulty.question.id": "Cosa succede se ho difficoltà a tenere il mio documento d'identità in posizione rispetto alla telecamera? ",
|
||||
"id.verification.camera.help.difficulty.answer": "Se hai bisogno di assistenza per scattare una foto da inviare, contatta il supporto di {siteName} per ulteriori suggerimenti.",
|
||||
"id.verification.id.photo.unclear.question": "L'immagine della tua carta d'identità non è chiara o troppo sfocata?",
|
||||
"id.verification.id.tips.title": "Suggerimenti utili per la carta d'identità",
|
||||
"id.verification.id.tips.description": "Successivamente, avremo bisogno che tu scatti una foto di una carta d'identità valida che includa il tuo nome completo e foto, come una patente di guida o un passaporto. Tieni a portata di mano il tuo documento d'identità.",
|
||||
"id.verification.id.tips.list.well.lit": "La tua carta d'identità è ben illuminata.",
|
||||
"id.verification.id.tips.list.clear": "Assicurati di poter vedere la tua foto e di leggere chiaramente il tuo nome. ",
|
||||
"id.verification.id.photo.title.camera": "Scatta una foto della tua carta d'identità",
|
||||
"id.verification.id.photo.title.upload": "Carica una foto della tua carta d'identità",
|
||||
"id.verification.id.photo.preview.alt": "Anteprima della foto del documento d'identità.",
|
||||
"id.verification.id.photo.instructions.camera": "Quando il tuo ID è in posizione, usa il pulsante Scatta foto qui sotto per scattare la tua foto. Utilizza un passaporto, una patente di guida o un'altra carta d'identità che includa il tuo nome completo e una foto del tuo viso.",
|
||||
"id.verification.id.photo.instructions.upload": "Carica una foto della tua carta d'identità. Assicurati che l'intero ID rientri nel telaio e sia ben illuminato. La dimensione del file deve essere inferiore a 10 MB. Formati supportati:",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "Il file selezionato non è un tipo di immagine supportato. Si prega di scegliere tra i seguenti formati:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "Il file selezionato è troppo grande. Riprova con un file inferiore a 10 MB.",
|
||||
"id.verification.name.check.title": "Ricontrolla il tuo nome",
|
||||
"id.verification.name.check.instructions": "Il nome qui sotto corrisponde al nome sul tuo documento d'identità con foto? In caso contrario, aggiorna il nome di seguito in modo che corrisponda al tuo ID con foto.",
|
||||
"id.verification.name.check.mismatch.information": "Se il nome seguente non corrisponde al tuo ID con foto, la verifica dell'identità verrà negata.",
|
||||
"id.verification.name.error": "Inserisci il tuo nome come appare sul tuo documento d'identità con foto.",
|
||||
"id.verification.account.name.warning.prefix": "Nota:",
|
||||
"id.verification.account.name.settings": "Impostazioni account",
|
||||
"id.verification.name.label": "Nome",
|
||||
"id.verification.account.name.photo.alt": "Foto del tuo documento d'identità da inviare.",
|
||||
"id.verification.review.title": "Controlla le tue foto",
|
||||
"id.verification.review.description": "Assicurati che sia possibile verificare la tua identità con le foto e le informazioni che ci hai fornito. ",
|
||||
"id.verification.review.portrait.label": "Il tuo ritratto ",
|
||||
"id.verification.review.portrait.alt": "Foto del tuo viso da inviare.",
|
||||
"id.verification.review.portrait.retake": "Scatta di nuovo la foto",
|
||||
"id.verification.review.id.label": "La tua carta d'identità",
|
||||
"id.verification.review.id.alt": "Foto della tua carta d'identità da presentare.",
|
||||
"id.verification.review.id.retake": "Scatta di nuovo la foto del documento d'identità",
|
||||
"id.verification.review.confirm": "Invia",
|
||||
"id.verification.submission.alert.error.face": "È necessaria una foto del tuo viso. Scatta nuovamente una foto. ",
|
||||
"id.verification.submission.alert.error.id": "È necessaria una foto del tuo documento d'identità. Scatta nuovamente una foto del tuo documento d'identità. ",
|
||||
"id.verification.submission.alert.error.name": "È obbligatorio un nome account valido. Aggiorna il nome del tuo account in modo che corrisponda al nome sul tuo documento d'identità. ",
|
||||
"id.verification.submission.alert.error.unsupported": "Uno o più file che hai caricato è in un formato non supportato. Si prega di scegliere tra i seguenti: ",
|
||||
"id.verification.review.error": "Pagina di Supporto {siteName}",
|
||||
"id.verification.submitted.title": "Verifica identità in corso",
|
||||
"id.verification.submitted.text": "Abbiamo ricevuto le tue informazioni e stiamo verificando la tua identità. Riceverai una notifica al termine del processo di verifica (di solito entro 5 giorni). Nel frattempo, puoi ancora accedere a tutti i contenuti disponibili del corso.",
|
||||
"id.verification.return.dashboard": "Ritorna alla tua dashboard",
|
||||
"id.verification.return.course": "Ritorna al corso",
|
||||
"id.verification.return.generic": "Ritorno",
|
||||
"id.verification.photo.upload.help.title": "Carica foto",
|
||||
"id.verification.photo.camera.help.title": "Utilizza la tua fotocamera",
|
||||
"id.verification.photo.upload.help.text": "Se hai problemi con l'acquisizione della foto, puoi decidere di caricare una foto. Per caricare una foto fai clic sul pulsante che segue.",
|
||||
"id.verification.photo.camera.help.text": "Se hai problemi con il caricamento della foto, puoi decidere di utilizzare la tua fotocamera. Per utilizzare la tua fotocamera, fai clic sul pulsante che segue.",
|
||||
"id.verification.upload.help.button": "Passa alla modalità di caricamento",
|
||||
"id.verification.camera.help.button": "Passa alla modalità con fotocamera",
|
||||
"id.verification.request.camera.access.instructions": "Per scattare una foto utilizzando la tua webcam, è possibile che tu riceva una richiesta dal browser per l'accesso alla tua fotocamera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Le impostazioni del tuo account sono gestite da {managerTitle}. Se il nome riportato sul tuo documento d'identità con foto non corrisponde al nome nel tuo account, prima di completare il processo di verifica della foto, contatta il tuo amministratore di {profileDataManager} o {support} per assistenza. ",
|
||||
"id.verification.requirements.card.device.text": "Hai bisogno di un dispositivo dotato di fotocamera. Se ricevi una richiesta del browser per l'accesso alla fotocamera, assicurati di fare clic su {allow}. ",
|
||||
"id.verification.account.name.summary.alert": "Le impostazioni del tuo account sono gestite da {managerTitle}. Se il nome riportato sul tuo documento d'identità con foto non corrisponde al nome nel tuo account, contatta il tuo amministratore di {profileDataManager} o {support} per assistenza. ",
|
||||
"idv.submission.alert.error": "\n Si è verificato un errore tecnico durante il tentativo di inviare la verifica del documento d'identità.\nÈ possibile che ciò sia dovuto ad un problema temporaneo, quindi riprova tra qualche minuto.\nSe il problema persiste, accedi alla pagina {support_link} per assistenza.",
|
||||
"id.verification.account.name.edit": "Modifica {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
354
src/i18n/messages/pt.json
Normal file
354
src/i18n/messages/pt.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "Your profile settings are managed by {managerTitle}. Contact your administrator or {support} for help.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Account Settings",
|
||||
"account.settings.loading.message": "Loading...",
|
||||
"account.settings.loading.error": "Error: {error}",
|
||||
"account.settings.banner.beta.language": "You have set your language to {beta_language}, which is currently not fully translated. You can help us translate this language fully by joining the Transifex community and adding translations from English for learners that speak {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Switch Back to {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Help Translate into {beta_language}",
|
||||
"account.settings.section.account.information": "Account Information",
|
||||
"account.settings.section.account.information.description": "These settings include basic information about your account.",
|
||||
"account.settings.section.profile.information": "Profile Information",
|
||||
"account.settings.section.demographics.information": "Optional Information",
|
||||
"account.settings.section.site.preferences": "Site Preferences",
|
||||
"account.settings.section.linked.accounts": "Linked Accounts",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.field.username": "Username",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.full.name": "Full name",
|
||||
"account.settings.field.full.name.empty": "Add name",
|
||||
"account.settings.field.full.name.help.text": "The name that is used for ID verification and that appears on your certificates.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "Email address (Sign in)",
|
||||
"account.settings.field.email.empty": "Add email address",
|
||||
"account.settings.field.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your email address.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "Recovery email address",
|
||||
"account.settings.field.secondary.email.empty": "Add a recovery email address",
|
||||
"account.settings.field.secondary.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your recovery email address.",
|
||||
"account.settings.email.field.confirmation.header": "Pending confirmation",
|
||||
"account.settings.field.dob": "Year of birth",
|
||||
"account.settings.field.dob.empty": "Add year of birth",
|
||||
"account.settings.field.year_of_birth.options.empty": "Select a year of birth",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Country",
|
||||
"account.settings.field.country.empty": "Add country",
|
||||
"account.settings.field.country.options.empty": "Select a Country",
|
||||
"account.settings.field.state": "State",
|
||||
"account.settings.field.state.empty": "Add state",
|
||||
"account.settings.field.state.options.empty": "Select a State",
|
||||
"account.settings.field.site.language": "Site language",
|
||||
"account.settings.field.site.language.help.text": "The language used throughout this site. This site is currently available in a limited number of languages.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Add level of education",
|
||||
"account.settings.field.education.levels.empty": "Select a level of education",
|
||||
"account.settings.field.education.levels.p": "Doctorate",
|
||||
"account.settings.field.education.levels.m": "Master's or professional degree",
|
||||
"account.settings.field.education.levels.b": "Bachelor's Degree",
|
||||
"account.settings.field.education.levels.a": "Associate's degree",
|
||||
"account.settings.field.education.levels.hs": "Secondary/high school",
|
||||
"account.settings.field.education.levels.jhs": "Junior secondary/junior high/middle school",
|
||||
"account.settings.field.education.levels.el": "Elementary/primary school",
|
||||
"account.settings.field.education.levels.none": "No formal education",
|
||||
"account.settings.field.education.levels.o": "Other education",
|
||||
"account.settings.field.gender": "Gender",
|
||||
"account.settings.field.gender.empty": "Add gender",
|
||||
"account.settings.field.gender.options.empty": "Select a gender",
|
||||
"account.settings.field.gender.options.f": "Female",
|
||||
"account.settings.field.gender.options.m": "Male",
|
||||
"account.settings.field.gender.options.o": "Other",
|
||||
"account.settings.field.language.proficiencies": "Spoken language",
|
||||
"account.settings.field.language.proficiencies.empty": "Add a spoken language",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Select a Language",
|
||||
"account.settings.field.time.zone": "Time zone",
|
||||
"account.settings.field.time.zone.empty": "Set time zone",
|
||||
"account.settings.field.time.zone.description": "Select the time zone for displaying course dates. If you do not specify a time zone, course dates, including assignment deadlines, will be displayed in your browser’s local time zone.",
|
||||
"account.settings.field.time.zone.default": "Default (Local Time Zone)",
|
||||
"account.settings.field.time.zone.all": "All time zones",
|
||||
"account.settings.field.time.zone.country": "Country time zones",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Add LinkedIn profile",
|
||||
"account.settings.jump.nav.delete.account": "Delete My Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Add Twitter profile",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Add Facebook profile",
|
||||
"account.settings.editable.field.action.save": "Save",
|
||||
"account.settings.editable.field.action.cancel": "Cancel",
|
||||
"account.settings.editable.field.action.edit": "Edit",
|
||||
"account.settings.static.field.empty": "No value set. Contact your {enterprise} administrator to make changes.",
|
||||
"account.settings.static.field.empty.no.admin": "No value set.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.delete.account.before.proceeding": "Before proceeding, please {actionLink}.",
|
||||
"account.settings.delete.account.header": "Delete My Account",
|
||||
"account.settings.delete.account.subheader": "We're sorry to see you go!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Want to change your email, name, or password instead?",
|
||||
"account.settings.delete.account.button": "Delete My Account",
|
||||
"account.settings.delete.account.please.activate": "activate your account",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "unlink all social media accounts",
|
||||
"account.settings.delete.account.modal.header": "Are you sure?",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "If you still wish to continue and delete your account, please enter your account password:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Yes, Delete",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancel",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Unable to delete account",
|
||||
"account.settings.delete.account.error.no.password": "A password is required",
|
||||
"account.settings.delete.account.error.invalid.password": "Password is incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Sorry, there was an error trying to process your request. Please try again later.",
|
||||
"account.settings.delete.account.modal.after.header": "We're sorry to see you go! Your account will be deleted shortly.",
|
||||
"account.settings.delete.account.modal.after.text": "Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.",
|
||||
"account.settings.delete.account.modal.after.button": "Close",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "An error occurred attempting to retrieve or save your account information. Please try again later.",
|
||||
"account.settings.field.demographics.gender": "Gender identity",
|
||||
"account.settings.field.demographics.gender.empty": "Add gender identity",
|
||||
"account.settings.field.demographics.gender.options.empty": "Select a gender identity",
|
||||
"account.settings.field.demographics.gender_description": "Gender identity description",
|
||||
"account.settings.field.demographics.gender_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.ethnicity": "Race/Ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Add race/ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Select all that apply",
|
||||
"account.settings.field.demographics.income": "Family income",
|
||||
"account.settings.field.demographics.income.empty": "Add family income",
|
||||
"account.settings.field.demographics.income.options.empty": "Select a family income range",
|
||||
"account.settings.field.demographics.military_history": "U.S. Military status",
|
||||
"account.settings.field.demographics.military_history.empty": "Add military status",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Select military status",
|
||||
"account.settings.field.demographics.learner_education_level": "Your education level",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.parent_education_level": "Parents/Guardians education level",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Select education level",
|
||||
"account.settings.field.demographics.work_status": "Employment status",
|
||||
"account.settings.field.demographics.work_status.empty": "Add employment status",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Select employment status",
|
||||
"account.settings.field.demographics.work_status_description": "Employment status description",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.current_work_sector": "Current work industry",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.future_work_sector": "Future work industry",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Select work industry",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technical support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "We've sent a message to {email}. Click the link in the message to reset your password. Didn't receive the message? Contact {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reset Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Your previous request is in progress, please try again in few moments.",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Sign in with {name}",
|
||||
"account.settings.sso.account.connected": "Linked",
|
||||
"account.settings.sso.account.disconnect.error": "There was a problem disconnecting this account. Contact support if the problem persists.",
|
||||
"account.settings.sso.unlink.account": "Unlink {name} account",
|
||||
"account.settings.sso.no.providers": "No accounts can be linked at this time.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"id.verification.next": "Next",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Example of a valid identification card with a full name and photo.",
|
||||
"id.verification.requirements.title": "Photo Verification Requirements",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.requirements.card.device.title": "Device with Camera",
|
||||
"id.verification.requirements.card.device.allow": "Allow",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "Privacy Information",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "We use your verification photos to confirm your identity and ensure the validity of your certificate.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.access.blocked.title": "Identity Verification",
|
||||
"id.verification.access.blocked.enrollment": "You are not currently enrolled in a course that requires identity verification.",
|
||||
"id.verification.access.blocked.pending": "You have already submitted your verification information. You will see a message on your dashboard when the verification process is complete (usually within 5 days).",
|
||||
"id.verification.photo.take": "Take Photo",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "Enable Face Detection",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "If checked, a box will appear around your face. Your face can be seen clearly if the box around it is blue. If your face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "If checked, a box will appear around the face on your ID card. The face can be seen clearly if the box around it is blue. If the face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.feedback.correct": "Face is in a good position.",
|
||||
"id.verification.photo.feedback.two.faces": "More than one face detected.",
|
||||
"id.verification.photo.feedback.no.faces": "No face detected.",
|
||||
"id.verification.photo.feedback.top.left": "Incorrect position. Top left.",
|
||||
"id.verification.photo.feedback.top.center": "Incorrect position. Top center.",
|
||||
"id.verification.photo.feedback.top.right": "Incorrect position. Top right.",
|
||||
"id.verification.photo.feedback.center.left": "Incorrect position. Center left.",
|
||||
"id.verification.photo.feedback.center.center": "Incorrect position. Too close to camera.",
|
||||
"id.verification.photo.feedback.center.right": "Incorrect position. Center right.",
|
||||
"id.verification.photo.feedback.bottom.left": "Incorrect position. Bottom left.",
|
||||
"id.verification.photo.feedback.bottom.center": "Incorrect position. Bottom center.",
|
||||
"id.verification.photo.feedback.bottom.right": "Incorrect position. Bottom right.",
|
||||
"id.verification.camera.access.title": "Camera Permissions",
|
||||
"id.verification.camera.access.title.success": "Camera Access Enabled",
|
||||
"id.verification.camera.access.title.failed": "Camera Access Failed",
|
||||
"id.verification.camera.access.click.allow": "Please make sure to click \"Allow\"",
|
||||
"id.verification.camera.access.enable": "Enable Camera",
|
||||
"id.verification.camera.access.problems": "Having problems?",
|
||||
"id.verification.camera.access.skip": "Skip and upload image files instead",
|
||||
"id.verification.camera.access.success": "Looks like your camera is working and ready.",
|
||||
"id.verification.camera.access.failure": "It looks like we're unable to access your camera. You will need to upload image files of you and your photo id.",
|
||||
"id.verification.camera.access.failure.temporary": "It looks like we're unable to access your camera. Please verify that your webcam is connected and that you have allowed your browser to access it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "To enable camera access in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Open Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigate to More > Settings.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "For Windows: Alt+F, Alt+E, or F10 followed by the spacebar",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "For Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Under the \"Privacy and security\" tab, select \"Site Settings\" and then \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Under \"Blocked,\" find \"edx.org\" and select it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "In the \"Permissions\" section, update the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "To enable camera access in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Open the Flash Player Settings Manager by navigating to Windows Settings > Control Panel > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Select the \"Camera and Mic\" tab, and then select the \"Camera and Microphone Settings by Site\" button.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choose \"edx.org\" from the list of websites and change the permissions by selecting \"Allow\" in the dropdown menu.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "To enable camera access in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Open Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Enter \"about:preferences\" in the URL bar.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Select the \"Privacy & Security\" tab, and navigate to the \"Permissions\" section.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Next to \"Camera,\" select the \"Settings…\" button.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "In the search bar, enter \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "In the status column for \"edx.org,\" select \"Allow\" from the drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Select \"Save Changes.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "To enable camera access in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Open Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Click on the Safari app menu, then select \"Preferences.\" You can also use Command+, as a keyboard shortcut.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Select the \"Websites\" tab and then select \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Select \"edx.org\" and change the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "Helpful Photo Tips",
|
||||
"id.verification.photo.tips.description": "Next, we'll need you to take a photo of your face. Please review the helpful tips below.",
|
||||
"id.verification.photo.tips.list.title": "Photo Tips",
|
||||
"id.verification.photo.tips.list.description": "To take a successful photo, make sure that:",
|
||||
"id.verification.photo.tips.list.well.lit": "Your face is well-lit.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Your entire face fits inside the frame.",
|
||||
"id.verification.portrait.photo.title.camera": "Take a Photo of Yourself",
|
||||
"id.verification.portrait.photo.instructions.camera": "When your face is in position, use the Take Photo button below to take your photo.",
|
||||
"id.verification.camera.help.sight.question": "What if I can't see the camera image or if I can't see my photo to determine which side is visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally the best position for a headshot is approximately 12-18 inches (30-45 centimeters) from the camera, with your head centered relative to the computer screen. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle.",
|
||||
"id.verification.camera.help.sight.answer.id": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally, the best position for a photo of an ID card is 8-12 inches (20-30 centimeters) from the camera, with the ID card centered relative to the camera. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle. The most common reason for rejection is inability to read the text on the ID card.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "What if I have difficulty holding my head in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.question.id": "What if I have difficulty holding my ID in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.id.tips.list.clear": "Ensure that you can see your photo and clearly read your name.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.preview.alt": "Preview of photo ID.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "Please Note:",
|
||||
"id.verification.account.name.settings": "Account Settings",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Photo of your ID to be submitted.",
|
||||
"id.verification.review.title": "Review Your Photos",
|
||||
"id.verification.review.description": "Make sure we can verify your identity with the photos and information you have provided.",
|
||||
"id.verification.review.portrait.label": "Your Portrait",
|
||||
"id.verification.review.portrait.alt": "Photo of your face to be submitted.",
|
||||
"id.verification.review.portrait.retake": "Retake Portrait Photo",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "Retake ID Photo",
|
||||
"id.verification.review.confirm": "Submit",
|
||||
"id.verification.submission.alert.error.face": "A photo of your face is required. Please retake your portrait photo.",
|
||||
"id.verification.submission.alert.error.id": "A photo of your ID card is required. Please retake your ID photo.",
|
||||
"id.verification.submission.alert.error.name": "A valid account name is required. Please update your account name to match the name on your ID.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "Identity Verification in Progress",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "Return to Your Dashboard",
|
||||
"id.verification.return.course": "Return to Course",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "In order to take a photo using your webcam, you may receive a browser prompt for access to your camera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "You need a device that has a camera. If you receive a browser prompt for access to your camera, please make sure to click {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\n We encountered a technical error while trying to submit ID verification.\n This might be a temporary issue, so please try again in a few minutes.\n If the problem persists, please go to {support_link} for help.\n ",
|
||||
"id.verification.account.name.edit": "Edit {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
354
src/i18n/messages/pt_PT.json
Normal file
354
src/i18n/messages/pt_PT.json
Normal file
@@ -0,0 +1,354 @@
|
||||
{
|
||||
"account.settings.message.duplicate.tpa.provider": "A conta {provider} que seleccionou já está ligada a outra conta {siteName}.",
|
||||
"account.settings.message.managed.settings": "As definições do seu perfil são geridas por {managerTitle}. Contacte o seu administrador ou {support} para obter ajuda.",
|
||||
"account.settings.message.managed.settings.support": "suporte",
|
||||
"account.settings.page.heading": "Configurações de Conta",
|
||||
"account.settings.loading.message": "Carregando...",
|
||||
"account.settings.loading.error": "Erro: {error}",
|
||||
"account.settings.banner.beta.language": "Definiu o idioma {beta_language}, que atualmente não está completamente traduzido. Pode ajudar-nos a completar a tradução deste idioma juntando-se à comunidade Transifex e adicionando traduções de Inglês para {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Retomar o idioma {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Ajude-nos a Traduzir para {beta_language}",
|
||||
"account.settings.section.account.information": "Informação da Conta",
|
||||
"account.settings.section.account.information.description": "Estas configurações incluem informações básicas sobre a sua conta.",
|
||||
"account.settings.section.profile.information": "Informação do Perfil",
|
||||
"account.settings.section.demographics.information": "Informação Opcional",
|
||||
"account.settings.section.site.preferences": "Preferências do Site",
|
||||
"account.settings.section.linked.accounts": "Contas Vinculadas",
|
||||
"account.settings.section.linked.accounts.description": "Pode ligar as suas contas de identidade para simplificar o inicio de sessão em {siteName}.",
|
||||
"account.settings.field.username": "Nome de utilizador",
|
||||
"account.settings.field.username.help.text": "O nome que o identifica em {siteName}. Não pode alterar o seu nome de utilizador.",
|
||||
"account.settings.field.full.name": "Nome completo",
|
||||
"account.settings.field.full.name.empty": "Adicionar nome",
|
||||
"account.settings.field.full.name.help.text": "O nome que é utilizado para verificação de ID e que aparece nos seus certificados.",
|
||||
"account.settings.field.full.name.help.text.default": "O nome que aparece no seu perfil público.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "Este nome está selecionado para aparecer nos seus certificados e registos públicos.",
|
||||
"account.settings.field.name.verified": "Nome verificado",
|
||||
"account.settings.field.name.verified.help.text.verified": "Este nome foi verificado por identificação com foto.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "Este nome foi verificado por supervisão.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "Esse nome foi verificado por identificação com foto e foi selecionado para aparecer em seus certificados e registros públicos.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "Esse nome foi verificado por supervisão e foi selecionado para aparecer em seus certificados e registros públicos.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "A verificação foi submetida. Normalmente demora 48 horas ou menos. O nome verificado não pode ser alterado neste momento. ",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Seu exame supervisionado foi enviado. O nome verificado não pode ser alterado neste momento. Por favor, verifique novamente em 2-5 dias.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "Quando a verificação de identidade for bem sucedida, este nome aparecerá nos seus certificados e registos públicos. O nome verificado não pode ser alterado neste momento.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Depois que seu exame supervisionado passar na revisão, esse nome aparecerá no seu certificado e nos registros públicos. O Nome Verificado não pode ser alterado neste momento.",
|
||||
"account.settings.field.name.verified.verification.help": "Digite seu nome como ele aparece em seu cartão de estudante, trabalho ou documento de identificação emitido pelo governo.",
|
||||
"account.settings.field.full.name.help.text.submitted": "A verificação foi submetida. Normalmente demora 48 horas ou menos. O nome completo não pode ser alterado neste momento.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Seu exame supervisionado foi enviado. O nome completo não pode ser alterado neste momento. Por favor, verifique novamente em 2-5 dias.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "Quando a verificação de identidade for bem sucedida, este nome aparecerá nos seus certificados e registos públicos. O nome completo não pode ser alterado neste momento.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Depois que seu exame supervisionado passar na revisão, esse nome aparecerá em seus certificados e registros públicos. O nome completo não pode ser alterado neste momento.",
|
||||
"account.settings.field.name.verified.success.message": "O seu pedido de verificação de identidade foi concluído com êxito. Agora tem a opção de selecionar qual o nome que prefere que apareça nos seus certificados e registos públicos.",
|
||||
"account.settings.field.name.verified.success.message.header": "O seu pedido de alteração de nome está completo!",
|
||||
"account.settings.field.name.verified.failure.message": "A sua tentativa de verificação de identidade mais recente não passou. As definições de conta relacionadas foram restauradas.",
|
||||
"account.settings.field.name.verified.failure.message.header": "Não foi possível verificar a sua identidade.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Saiba mais sobre a verificação da ID",
|
||||
"account.settings.field.name.verified.submitted.message": "O seu pedido de verificação de identidade foi submetido e geralmente demora entre 24 e 48 horas a ser concluído.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "Quando o seu pedido for aprovado, o seu nome atualizado aparecerá em todos os certificados associados e registos públicos.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "O seu pedido de alteração de nome está quase completo!",
|
||||
"account.settings.field.email": "Endereço de e-mail (Iniciar sessão)",
|
||||
"account.settings.field.email.empty": "Adicionar endereço de e-mail",
|
||||
"account.settings.field.email.confirmation": "Foi enviada uma mensagem de confirmação para {value}. Cique no link da mensagem para atualizar o seu endereço de e-mail.",
|
||||
"account.settings.field.email.help.text": "Recebe mensagens de {siteName} e das equipas do curso neste endereço.",
|
||||
"account.settings.field.secondary.email": "E-mail de recuperação",
|
||||
"account.settings.field.secondary.email.empty": "Adicione um endereço de e-mail de recuperação",
|
||||
"account.settings.field.secondary.email.confirmation": "Enviámos uma mensagem de confirmação para {value}. Clique no link da mensagem para atualizar o seu e-mail de recuperação.",
|
||||
"account.settings.email.field.confirmation.header": "Confirmação pendente",
|
||||
"account.settings.field.dob": "Ano de nascimento",
|
||||
"account.settings.field.dob.empty": "Adicione ano de nascimento",
|
||||
"account.settings.field.year_of_birth.options.empty": "Selecionar um ano de nascimento",
|
||||
"account.settings.field.dob.month": "Mês",
|
||||
"account.settings.field.dob.year": "Ano",
|
||||
"account.settings.field.month.year.default": "Selecione um mês",
|
||||
"account.settings.field.dob.year.default": "Selecione um ano",
|
||||
"account.settings.field.dob.form.button": "Por favor confirme a sua data de nascimento",
|
||||
"account.settings.field.dob.form.title": "Introduza o seu mês e ano de nascimento",
|
||||
"account.settings.field.dob.form.help.text": "Pedimos informações sobre o mês e ano de nascimento para nos ajudar a cumprir as nossas obrigações legais.",
|
||||
"account.settings.field.dob.form.success": "Obrigado por introduzir a sua informação.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Selecione um mês de nascimento",
|
||||
"account.settingsfield.dob.error.general": "Ocorreu um erro técnico. Por favor, tente novamente.",
|
||||
"account.settings.field.country": "País",
|
||||
"account.settings.field.country.empty": "Adicionar país",
|
||||
"account.settings.field.country.options.empty": "Selecionar um País",
|
||||
"account.settings.field.state": "Estado",
|
||||
"account.settings.field.state.empty": "Adicionar estado",
|
||||
"account.settings.field.state.options.empty": "Selecionar um Estado",
|
||||
"account.settings.field.site.language": "Idioma do site",
|
||||
"account.settings.field.site.language.help.text": "O idioma usado em todo este site. Este site está atualmente disponível com um número limitado de idiomas.",
|
||||
"account.settings.field.education": "Educação",
|
||||
"account.settings.field.education.empty": "Adicione grau de escolaridade",
|
||||
"account.settings.field.education.levels.empty": "Selecione um grau de escolaridade",
|
||||
"account.settings.field.education.levels.p": "Doutoramento",
|
||||
"account.settings.field.education.levels.m": "Mestrado ou grau profissional",
|
||||
"account.settings.field.education.levels.b": "Licenciatura",
|
||||
"account.settings.field.education.levels.a": "Bacharelato",
|
||||
"account.settings.field.education.levels.hs": "Secundário",
|
||||
"account.settings.field.education.levels.jhs": "2ªciclo/3ºciclo",
|
||||
"account.settings.field.education.levels.el": "Primária",
|
||||
"account.settings.field.education.levels.none": "Sem estudos",
|
||||
"account.settings.field.education.levels.o": "Outra educação",
|
||||
"account.settings.field.gender": "Género",
|
||||
"account.settings.field.gender.empty": "Adicionar género",
|
||||
"account.settings.field.gender.options.empty": "Seleccione um género",
|
||||
"account.settings.field.gender.options.f": "Feminino",
|
||||
"account.settings.field.gender.options.m": "Masculino",
|
||||
"account.settings.field.gender.options.o": "Outro",
|
||||
"account.settings.field.language.proficiencies": "Idioma falado",
|
||||
"account.settings.field.language.proficiencies.empty": "Adicione uma língua falada",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Selecionar um Idioma",
|
||||
"account.settings.field.time.zone": "Fuso horário",
|
||||
"account.settings.field.time.zone.empty": "Definir fuso horário",
|
||||
"account.settings.field.time.zone.description": "Selecione o fuso horário das datas do curso. Se não especificar o fuso horário, as datas do curso e os prazos para as tarefas serão apresentados em função do fuso horário do seu navegador.",
|
||||
"account.settings.field.time.zone.default": "Padrão (Fuso horário local)",
|
||||
"account.settings.field.time.zone.all": "Todos os fusos horários",
|
||||
"account.settings.field.time.zone.country": "Fusos horários do país",
|
||||
"account.settings.section.social.media": "Links de Redes Sociais",
|
||||
"account.settings.section.social.media.description": "Opcionalmente, ligue as suas contas pessoais aos ícones das redes sociais no seu perfil {siteName}.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Adicionar perfil do LinkedIn",
|
||||
"account.settings.jump.nav.delete.account": "Eliminar a Minha Conta",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Adicionar perfil no Twitter",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Adicionar perfil do Facebook",
|
||||
"account.settings.editable.field.action.save": "Guardar",
|
||||
"account.settings.editable.field.action.cancel": "Cancelar",
|
||||
"account.settings.editable.field.action.edit": "Editar",
|
||||
"account.settings.static.field.empty": "Sem conjunto de valores. Contacte o seu administrador {enterprise} para fazer alterações.",
|
||||
"account.settings.static.field.empty.no.admin": "Nenhum valor definido.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "Se verificado, este nome irá aparecer nos seus certificados e registos públicos.",
|
||||
"account.settings.field.name.modal.certificate.title": "Escolha um nome preferido para certificados e registos públicos.",
|
||||
"account.settings.field.name.modal.certificate.select": "Selecione um nome",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Nome Completo",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Nome Verificado",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Escolha um nome",
|
||||
"account.settings.delete.account.before.proceeding": "Antes de prosseguir, por favor {actionLink}.",
|
||||
"account.settings.delete.account.header": "Eliminar a Minha Conta",
|
||||
"account.settings.delete.account.subheader": "Lamentamos vê-lo/a partir!",
|
||||
"account.settings.delete.account.text.1": "Atenção: Eliminar a sua conta e os seus dados pessoais é permanente e não pode ser desfeita. A plataforma {siteName} não poderá recuperar a sua conta ou os dados que forem apagados.",
|
||||
"account.settings.delete.account.text.2": "Assim que a sua conta for apagada, não poderá utilizá-la para frequentar cursos na plataforma {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Uma vez apagada a sua conta, não poderá utilizá-la para fazer cursos na aplicação edX, edx.org, ou em qualquer outro site alojado pela edX. Isto inclui acesso ao edx.org a partir do sistema do seu empregador ou universidade e acesso a sites privados oferecidos pelo MIT Open Learning, Wharton Executive Education, e Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Siga estas instruções para imprimir ou transferir um certificado",
|
||||
"account.settings.delete.account.text.warning": "Aviso: Eliminar a conta é permanente. Por favor, leia atentamente o acima exposto antes de prosseguir. Esta é uma acção irreversível, e deixará de poder utilizar o mesmo e-mail em {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Quer alterar o seu e-mail, nome, ou palavra-passe em alternativa?",
|
||||
"account.settings.delete.account.button": "Eliminar a Minha Conta",
|
||||
"account.settings.delete.account.please.activate": "ative a sua conta",
|
||||
"account.settings.delete.account.please.confirm": "confirme a sua conta",
|
||||
"account.settings.delete.account.please.unlink": "debloquear todas as contas dos meios de comunicação social",
|
||||
"account.settings.delete.account.modal.header": "Tem a certeza?",
|
||||
"account.settings.delete.account.modal.text.1": "Seleccionou \"Apagar a Minha Conta\". Eliminar a sua conta e os seus dados pessoais é permanente e não pode ser desfeito. A plataforma {siteName} não poderá recuperar a sua conta ou os dados que forem apagados.",
|
||||
"account.settings.delete.account.modal.text.2": "Se prosseguir, não poderá utilizar esta conta para frequentar cursos na plataforma {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "Se prosseguir, não poderá utilizar esta conta para fazer cursos na aplicação edX, edx.org, ou em qualquer outro site alojado pela edX. Isto inclui acesso ao edx.org a partir do sistema do seu empregador ou universidade e acesso a sítios privados oferecidos pelo MIT Open Learning, Wharton Executive Education, e Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "Se ainda assim desejar continuar e apagar a sua conta, introduza a sua palavra-passe da conta:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Sim, Eliminar",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancelar",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Não é possível eliminar a conta",
|
||||
"account.settings.delete.account.error.no.password": "É exigida uma palavra-passe",
|
||||
"account.settings.delete.account.error.invalid.password": "A palavra-passe está incorreta",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Lamentamos, ocorreu um erro enquanto tentávamos processar o seu pedido. Por favor, tente novamente mais tarde.",
|
||||
"account.settings.delete.account.modal.after.header": "Lamentamos vê-lo/a partir! A sua conta será eliminada em breve.",
|
||||
"account.settings.delete.account.modal.after.text": "Eliminar a conta, incluindo a remoção das listas de correio electrónico, pode levar algumas semanas para ser totalmente processada através do nosso sistema. Se quiser optar por não receber e-mails antes disso, por favor, anule a sua inscrição no rodapé de qualquer e-mail.",
|
||||
"account.settings.delete.account.modal.after.button": "Fechar",
|
||||
"account.settings.delete.account.text.3.edX": "Também pode perder o acesso a certificados verificados e outras credenciais de programas como os certificados MicroMasters. Pode fazer uma cópia destes para os seus registos antes de proceder com a remoção. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "Também pode perder o acesso a certificados verificados e outras credenciais de programas. Pode fazer uma cópia destes para os seus registos antes de proceder com a remoção.",
|
||||
"account.settings.message.demographics.service.issue": "Ocorreu um erro ao tentar recuperar ou guardar a informação da sua conta. Por favor, tente novamente mais tarde.",
|
||||
"account.settings.field.demographics.gender": "Identidade de género",
|
||||
"account.settings.field.demographics.gender.empty": "Adicionar identidade de género",
|
||||
"account.settings.field.demographics.gender.options.empty": "Seleccione uma identidade de género",
|
||||
"account.settings.field.demographics.gender_description": "Descrição da identidade de género",
|
||||
"account.settings.field.demographics.gender_description.empty": "Inserir descrição",
|
||||
"account.settings.field.demographics.ethnicity": "Identidade de Raça/Etnia",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Adicionar identidade de raça/etnia",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Seleccione tudo o que se aplica",
|
||||
"account.settings.field.demographics.income": "Rendimento familiar",
|
||||
"account.settings.field.demographics.income.empty": "Adicione rendimento familiar",
|
||||
"account.settings.field.demographics.income.options.empty": "Seleccione uma escala de rendimentos familiares",
|
||||
"account.settings.field.demographics.military_history": "Situação Militar dos E.U.A.",
|
||||
"account.settings.field.demographics.military_history.empty": "Adicionar situação militar",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Seleccionar situação militar",
|
||||
"account.settings.field.demographics.learner_education_level": "O seu nível de escolaridade",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Adicionar nível de escolaridade",
|
||||
"account.settings.field.demographics.parent_education_level": "Nível de educação dos pais/tutores",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Adicionar nível de escolaridade",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Seleccione o nível de escolaridade",
|
||||
"account.settings.field.demographics.work_status": "Situação profissional",
|
||||
"account.settings.field.demographics.work_status.empty": "Acrescentar estatuto profissional",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Seleccione o estatuto profissional",
|
||||
"account.settings.field.demographics.work_status_description": "Descever estatuto profissional",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Inserir descrição",
|
||||
"account.settings.field.demographics.current_work_sector": "Sector actual de trabalho",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Adicione sector de trabalho",
|
||||
"account.settings.field.demographics.future_work_sector": "Futuro sector de trabalho",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Adicione sector de trabalho",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Adicione sector de trabalho",
|
||||
"account.settings.section.demographics.why": "Porque é que a plataforma {siteName} recolhe esta informação?",
|
||||
"account.settings.name.change.title.id": "Esta mudança de nome requer verificação de identidade",
|
||||
"account.settings.name.change.title.begin": "Antes de começarmos",
|
||||
"account.settings.name.change.warning.one": "Aviso: Esta ação atualiza o nome que aparece em todos os certificados que foram obtidos nesta conta no passado e quaisquer certificados que esteja atualmente a obter ou irá obter no futuro.",
|
||||
"account.settings.name.change.warning.two": "Esta ação não pode ser desfeita sem verificar a sua identidade.",
|
||||
"account.settings.name.change.id.name.label": "Digite seu nome como ele aparece em seu cartão de estudante, trabalho ou documento de identificação emitido pelo governo.",
|
||||
"account.settings.name.change.id.name.placeholder": "Digite o nome em sua identificação com foto",
|
||||
"account.settings.name.change.error.valid.name": "Por favor insira um nome válido.",
|
||||
"account.settings.name.change.error.general": "Ocorreu um erro técnico. Por favor, tente novamente.",
|
||||
"account.settings.name.change.continue": "Continuar",
|
||||
"account.settings.name.change.cancel": "Cancelar",
|
||||
"error.notfound.message": "A página não foi encontrada ou o URL está errado. Por favor, verifique o URL e tente novamente.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "suporte técnico",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "Foi enviada uma mensagem para {email}. Clique no link da mensagem para redefinir a sua palavra-passe. Não recebeu a mensagem? Contacte {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Redefinir Palavra-passe",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "O seu pedido anterior está a ser tratado, por favor tente novamente dentro de alguns momentos.",
|
||||
"account.settings.editable.field.password.reset.label": "Palavra-passe",
|
||||
"account.settings.sso.link.account": "Inicie sessão com {name}",
|
||||
"account.settings.sso.account.connected": "Ligado",
|
||||
"account.settings.sso.account.disconnect.error": "Houve um problema a desconectar esta conta. Se o problema persistir contacte a equipa de suporte.",
|
||||
"account.settings.sso.unlink.account": "Desbloqueio da conta {name}",
|
||||
"account.settings.sso.no.providers": "Nenhuma conta pode ser associada neste momento.",
|
||||
"account.page.title": "Conta | {siteName}",
|
||||
"id.verification.access.blocked.denied": "Não conseguimos verificar a sua identidade neste momento. Se ainda não ativou a sua conta, por favor verifique a sua pasta de spam para o email de ativação de {email}.",
|
||||
"id.verification.next": "Seguinte",
|
||||
"id.verification.support": "suporte",
|
||||
"id.verification.example.card.alt": "Exemplo de um cartão de identificação válido com nome completo e fotografia.",
|
||||
"id.verification.requirements.title": "Requisitos de Verificação de Fotos",
|
||||
"id.verification.requirements.description": "Para completar a Verificação Fotográfica, necessitará do seguinte:",
|
||||
"id.verification.requirements.card.device.title": "Dispositivo com câmara",
|
||||
"id.verification.requirements.card.device.allow": "Permitir",
|
||||
"id.verification.requirements.card.id.title": "Cartão de Identificação Fotográfica",
|
||||
"id.verification.requirements.card.id.text": "É necessário um cartão de identificação válido que contenha o seu nome completo e fotografia, como uma carta de condução ou passaporte.",
|
||||
"id.verification.privacy.title": "Informação de Privacidade",
|
||||
"id.verification.privacy.need.photo.question": "Porque é que a plataforma {siteName} precisa da minha fotografia?",
|
||||
"id.verification.privacy.need.photo.answer": "Usamos as suas fotografias de verificação para confirmar a sua identidade e garantir a validade do seu certificado.",
|
||||
"id.verification.privacy.do.with.photo.question": "O que é que a plataforma {siteName} faz com esta foto?",
|
||||
"id.verification.privacy.do.with.photo.answer": "Encriptamos com segurança a sua fotografia e enviamo-la ao nosso serviço de autorização para revisão. A sua fotografia e informação não são guardadas ou visíveis em qualquer lugar na plataforma {siteName} após o processo de verificação estar concluído.",
|
||||
"id.verification.access.blocked.title": "Verificação de Identidade",
|
||||
"id.verification.access.blocked.enrollment": "Não se encontra actualmente inscrito num curso que exija verificação de identidade.",
|
||||
"id.verification.access.blocked.pending": "Já submeteu a sua informação de verificação. Verá uma mensagem no seu painel de controlo quando o processo de verificação estiver concluído (normalmente dentro de 5 dias).",
|
||||
"id.verification.photo.take": "Tirar Fotografia",
|
||||
"id.verification.photo.retake": "Retirar Fotografia?",
|
||||
"id.verification.photo.enable.detection": "Activar a Detecção de Rosto",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "Se marcado, aparecerá uma caixa à volta do seu rosto. O seu rosto pode ser visto claramente se a caixa à sua volta for azul. Se o seu rosto não estiver em boa posição ou indetectável, o quadrado será vermelho.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "Se marcado, aparecerá uma caixa à volta da cara no seu bilhete de identidade. O rosto pode ser visto claramente se a caixa à sua volta for azul. Se a face não estiver numa boa posição ou indetectável, a caixa será vermelha.",
|
||||
"id.verification.photo.feedback.correct": "A cara está numa boa posição.",
|
||||
"id.verification.photo.feedback.two.faces": "Mais de um rosto detectado.",
|
||||
"id.verification.photo.feedback.no.faces": "Nenhum rosto detectado.",
|
||||
"id.verification.photo.feedback.top.left": "Posição incorrecta. Em cima à esquerda.",
|
||||
"id.verification.photo.feedback.top.center": "Posição incorrecta. Centro superior.",
|
||||
"id.verification.photo.feedback.top.right": "Posição incorrecta. Em cima à direita.",
|
||||
"id.verification.photo.feedback.center.left": "Posição incorrecta. Centro à esquerda.",
|
||||
"id.verification.photo.feedback.center.center": "Posição incorrecta. Demasiado perto da câmara.",
|
||||
"id.verification.photo.feedback.center.right": "Posição incorrecta. Centro direito.",
|
||||
"id.verification.photo.feedback.bottom.left": "Posição incorrecta. Fundo à esquerda.",
|
||||
"id.verification.photo.feedback.bottom.center": "Posição incorrecta. Centro inferior.",
|
||||
"id.verification.photo.feedback.bottom.right": "Posição incorrecta. Em baixo à direita.",
|
||||
"id.verification.camera.access.title": "Permissões da Câmara",
|
||||
"id.verification.camera.access.title.success": "Acesso à Câmara Activado",
|
||||
"id.verification.camera.access.title.failed": "Falha no Acesso à Câmara",
|
||||
"id.verification.camera.access.click.allow": "Por favor, não se esqueça de clicar em \"Permitir\".",
|
||||
"id.verification.camera.access.enable": "Activar Câmara",
|
||||
"id.verification.camera.access.problems": "Está a ter problemas?",
|
||||
"id.verification.camera.access.skip": "Saltar e carregar ficheiros de imagem em alternativa",
|
||||
"id.verification.camera.access.success": "Parece que a sua câmara está a funcionar e pronta.",
|
||||
"id.verification.camera.access.failure": "Parece que não conseguimos aceder à sua câmara. Terá de carregar ficheiros de imagem seus e a sua identificação fotográfica.",
|
||||
"id.verification.camera.access.failure.temporary": "Parece que não conseguimos aceder à sua câmara. Por favor, verifique se a sua webcam está ligada e se permitiu que o seu navegador aceda à mesma.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "Para permitir o acesso à câmara no Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Abrir Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navegar para Mais > Configurações.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "Para Windows: Alt+F, Alt+E, ou F10 seguido da barra de espaço",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "Para Mac: Comando+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Sob o separador \"Privacidade e segurança\", seleccionar \"Configurações do site\" e depois \"Câmara\".",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Em \"Bloqueado\", encontrar \"edx.org\" e seleccioná-lo.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "Na secção \"Permissões\", actualizar as permissões da câmara para \"Permitir\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "Para permitir o acesso à câmara no Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Abra o Flash Player Settings Manager navegando para Configurações Windows > Painel de Controlo > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Seleccionar o separador \"Câmara e Microfone\", e depois seleccionar o botão \"Definições da Câmara e do Microfone por Local\".",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Escolher \"edx.org\" da lista de websites e alterar as permissões seleccionando \"Permitir\" no menu suspenso.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "Para permitir o acesso à câmara no Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Abrir Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Introduza \"about:preferences\" na barra URL.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Seleccione o separador \"Privacidade e Segurança\", e navegue para a secção \"Permissões\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Ao lado de \"Câmara\", seleccionar o botão \" Definições...\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "Na barra de pesquisa, introduza \"edx.org.\".",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "Na coluna de estado para \"edx.org\", seleccionar \"Permitir\" a partir do menu drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Seleccione \"Guardar Alterações\".",
|
||||
"id.verification.camera.access.failure.temporary.safari": "Para permitir o acesso à câmara no Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Abrir Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Clique no menu da aplicaçaão Safari, depois seleccione \"Preferências\". Também pode usar o Command+, como atalho de teclado.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Seleccione o separador \"Websites\" e depois seleccione \"Câmara\".",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Seleccione \"edx.org\" e altere as permissões da câmara para \"Permitir\".",
|
||||
"id.verification.camera.access.failure.unsupported": "Parece que o seu navegador não suporta o acesso à câmara.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "O navegador Chrome não suporta actualmente o acesso à câmara em dispositivos iOS, tais como iPhones e iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Por favor, utilize outro browser para completar a Verificação de Identidade.",
|
||||
"id.verification.photo.tips.title": "Dicas Úteis Para Fotografias",
|
||||
"id.verification.photo.tips.description": "A seguir, vamos precisar que tire uma fotografia do seu rosto. Por favor, reveja as dicas úteis abaixo.",
|
||||
"id.verification.photo.tips.list.title": "Dicas Fotográficas",
|
||||
"id.verification.photo.tips.list.description": "Para tirar uma foto bem-sucedida, certifique-se de que:",
|
||||
"id.verification.photo.tips.list.well.lit": "O rosto está bem iluminado.",
|
||||
"id.verification.photo.tips.list.inside.frame": "O rosto inteiro está dentro dos limites.",
|
||||
"id.verification.portrait.photo.title.camera": "Tire uma Fotografia Sua",
|
||||
"id.verification.portrait.photo.instructions.camera": "Quando o seu rosto estiver em posição, use o botão Tirar Fotografia abaixo para tirar a sua fotografia.",
|
||||
"id.verification.camera.help.sight.question": "E se eu não conseguir ver a imagem da câmara ou se não conseguir ver a minha fotografia para determinar que lado é visível?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "Poderá conseguir completar o procedimento de captura de imagem sem assistência, mas poderão ser necessárias algumas tentativas de submissão para obter o posicionamento correcto da câmara. O posicionamento óptimo da câmara varia de acordo com cada computador, mas geralmente a melhor posição para uma captura de cabeça é aproximadamente 30-45 centímetros (12-18 polegadas) da câmara, com a cabeça centrada em relação ao ecrã do computador. Se as fotos submetidas forem rejeitadas, tente mover o computador ou a orientação da câmara para alterar o ângulo de iluminação.",
|
||||
"id.verification.camera.help.sight.answer.id": "Poderá conseguir completar o procedimento de captura de imagem sem assistência, mas poderão ser necessárias algumas tentativas de submissão para obter o posicionamento correcto da câmara. O posicionamento ideal da câmara varia de acordo com cada computador, mas geralmente, a melhor posição para uma fotografia de um cartão de identificação é de 8-12 polegadas (20-30 centímetros) da câmara, com o cartão de identificação centrado em relação à câmara. Se as fotografias submetidas forem rejeitadas, tente mover o computador ou a orientação da câmara para alterar o ângulo de iluminação. O motivo mais comum de rejeição é a incapacidade de ler o texto no cartão de identificação.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "E se eu tiver dificuldade em manter a minha cabeça em posição em relação à câmara?",
|
||||
"id.verification.camera.help.difficulty.question.id": "E se eu tiver dificuldade em manter o meu documento de identificação em posição em relação à câmara?",
|
||||
"id.verification.camera.help.difficulty.answer": "Se necessitar de assistência para tirar uma fotografia para submissão, contactar o apoio {siteName} para sugestões adicionais.",
|
||||
"id.verification.id.photo.unclear.question": "A imagem do seu cartão de identificação está pouco clara ou demasiado desfocada?",
|
||||
"id.verification.id.tips.title": "Dicas Úteis de Cartões de Identificação",
|
||||
"id.verification.id.tips.description": "A seguir, vamos precisar que tire uma fotografia de um cartão de identificação válido que inclua o seu nome completo e fotografia, como uma carta de condução ou passaporte. Por favor, tenha a sua identificação pronta.",
|
||||
"id.verification.id.tips.list.well.lit": "O seu cartão de identificação está bem iluminado.",
|
||||
"id.verification.id.tips.list.clear": "Certifique-se de que consegue ver a sua fotografia e ler claramente o seu nome.",
|
||||
"id.verification.id.photo.title.camera": "Tire uma fotografia do Seu Cartão de Identificação",
|
||||
"id.verification.id.photo.title.upload": "Carregue uma fotografia do seu Cartão de Identificação",
|
||||
"id.verification.id.photo.preview.alt": "Pré-visualização da foto do ID.",
|
||||
"id.verification.id.photo.instructions.camera": "Quando a sua identificação estiver em posição, use o botão Tirar Foto abaixo para tirar a sua fotografia. Utilize um passaporte, carta de condução, ou outro cartão de identificação que inclua o seu nome completo e uma fotografia da sua cara.",
|
||||
"id.verification.id.photo.instructions.upload": "Por favor carregue uma fotografia do seu cartão de identificação. Assegure-se de que todo o documento de identificação se encontra dentro da moldura e está bem iluminado. O tamanho do ficheiro deve ser inferior a 10 MB. Formatos suportados: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "O ficheiro que seleccionou não é um tipo de imagem suportada. Por favor, escolha entre os seguintes formatos: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "O ficheiro que seleccionou é demasiado grande. Por favor, tente novamente com um ficheiro de menos de 10MB.",
|
||||
"id.verification.name.check.title": "Verifique o Seu Nome",
|
||||
"id.verification.name.check.instructions": "O nome abaixo corresponde ao nome na sua identificação com foto? Caso contrário, atualize o nome abaixo para corresponder ao seu documento de identidade com foto.",
|
||||
"id.verification.name.check.mismatch.information": "Se o nome abaixo não corresponder ao seu documento de identidade com foto, sua verificação de identidade será negada.",
|
||||
"id.verification.name.error": "Por favor, digite seu nome como aparece em seu documento de identidade com foto.",
|
||||
"id.verification.account.name.warning.prefix": "Por Favor Note:",
|
||||
"id.verification.account.name.settings": "Configurações de Conta",
|
||||
"id.verification.name.label": "Nome",
|
||||
"id.verification.account.name.photo.alt": "Foto da sua identificação a ser submetida.",
|
||||
"id.verification.review.title": "Reveja as Suas Fotografias",
|
||||
"id.verification.review.description": "Certifique-se de que podemos verificar a sua identidade com as fotografias e informações que nos forneceu.",
|
||||
"id.verification.review.portrait.label": "O Seu Perfil",
|
||||
"id.verification.review.portrait.alt": "Fotografia do seu rosto a ser submetida.",
|
||||
"id.verification.review.portrait.retake": "Tirar de Novo a Fotografia de Perfil",
|
||||
"id.verification.review.id.label": "O seu Cartão de Identificação",
|
||||
"id.verification.review.id.alt": "Fotografia do seu cartão de identificação a ser submetida.",
|
||||
"id.verification.review.id.retake": "Tirar de Novo a Fotografia do documento de identificação",
|
||||
"id.verification.review.confirm": "Submeter",
|
||||
"id.verification.submission.alert.error.face": "É necessária uma fotografia do seu rosto. Por favor, volte a tirar a sua foto de perfil.",
|
||||
"id.verification.submission.alert.error.id": "É necessária uma fotografia do seu cartão de identificação. Por favor, volte a tirar uma fotografia do seu documento de identificação.",
|
||||
"id.verification.submission.alert.error.name": "É necessário um nome de conta válido. Por favor, actualize o nome da sua conta para corresponder ao nome no seu documento de identificação.",
|
||||
"id.verification.submission.alert.error.unsupported": "Um ou mais dos ficheiros que carregou estão num formato não suportado. Por favor, escolha entre o seguinte: ",
|
||||
"id.verification.review.error": "{siteName} Página de Suporte",
|
||||
"id.verification.submitted.title": "Verificação de Identidade em Curso",
|
||||
"id.verification.submitted.text": "Recebemos suas informações e estamos verificando a sua identidade. Será notificado quando o processo de verificação estiver concluído (geralmente em 5 dias). Entretanto, poderá na mesma aceder a todo o conteúdo disponível do curso.",
|
||||
"id.verification.return.dashboard": "Regressar ao Seu Painel de Controlo",
|
||||
"id.verification.return.course": "Voltar ao Curso",
|
||||
"id.verification.return.generic": "Voltar",
|
||||
"id.verification.photo.upload.help.title": "Carregar uma Fotografia em alternativa",
|
||||
"id.verification.photo.camera.help.title": "Use Antes a Sua Câmara",
|
||||
"id.verification.photo.upload.help.text": "Se estiver a ter problemas com a captura de fotografias acima, talvez queira carregar uma fotografia em seu lugar. Para carregar uma fotografia, clique no botão abaixo.",
|
||||
"id.verification.photo.camera.help.text": "Se tiver dificuldades em carregar uma fotografia acima, poderá querer utilizar a sua câmara. Para utilizar a sua câmara, clique no botão abaixo.",
|
||||
"id.verification.upload.help.button": "Mudar para o Modo de Carregamento",
|
||||
"id.verification.camera.help.button": "Mudar para o Modo Câmara",
|
||||
"id.verification.request.camera.access.instructions": "Para tirar uma fotografia utilizando a sua webcam, poderá receber uma solicitação de acesso à sua câmara através do navegador. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "As definições da sua conta são geridas por {managerTitle}. Se o nome visível na fotografia do seu documento de identificação não corresponder ao nome da sua conta, contacte o seu administrador {profileDataManager} ou {support} para obter ajuda antes de completar o processo de Verificação de Fotografia.",
|
||||
"id.verification.requirements.card.device.text": "É necessário um dispositivo que tenha uma câmara. Se receber um pedido de acesso à sua câmara através de um navegador, por favor, certifique-se de que clica em {allow}.",
|
||||
"id.verification.account.name.summary.alert": "As definições da sua conta são geridas por {managerTitle}. Se o nome visível na fotografia do seu documento de identificação não corresponder ao nome da sua conta, contacte o seu administrador {profileDataManager} ou {support} para obter ajuda.",
|
||||
"idv.submission.alert.error": "\n Encontrámos um erro técnico ao tentar submeter a verificação da identificação.\n Isto pode ser uma questão temporária, por isso tente novamente dentro de alguns minutos.\n Se o problema persistir, por favor vá a {support_link} para obter ajuda.\n ",
|
||||
"id.verification.account.name.edit": "Editar {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
}
|
||||
@@ -1,11 +1,354 @@
|
||||
{
|
||||
"siteheader.links.courses": "Courses",
|
||||
"siteheader.links.programs": "Programs & Degrees",
|
||||
"siteheader.links.schools": "Schools & Partners",
|
||||
"siteheader.user.menu.dashboard": "Dashboard",
|
||||
"siteheader.user.menu.profile": "Profile",
|
||||
"siteheader.user.menu.account.settings": "Account",
|
||||
"siteheader.user.menu.logout": "Logout",
|
||||
"siteheader.user.menu.login": "Login",
|
||||
"siteheader.user.menu.register": "Sign Up"
|
||||
"account.settings.message.duplicate.tpa.provider": "The {provider} account you selected is already linked to another {siteName} account.",
|
||||
"account.settings.message.managed.settings": "Your profile settings are managed by {managerTitle}. Contact your administrator or {support} for help.",
|
||||
"account.settings.message.managed.settings.support": "support",
|
||||
"account.settings.page.heading": "Account Settings",
|
||||
"account.settings.loading.message": "Loading...",
|
||||
"account.settings.loading.error": "Error: {error}",
|
||||
"account.settings.banner.beta.language": "You have set your language to {beta_language}, which is currently not fully translated. You can help us translate this language fully by joining the Transifex community and adding translations from English for learners that speak {beta_language}.",
|
||||
"account.settings.banner.beta.language.action.switch.back": "Switch Back to {previous_language}",
|
||||
"account.settings.banner.beta.language.action.help.translate": "Help Translate into {beta_language}",
|
||||
"account.settings.section.account.information": "Account Information",
|
||||
"account.settings.section.account.information.description": "These settings include basic information about your account.",
|
||||
"account.settings.section.profile.information": "Profile Information",
|
||||
"account.settings.section.demographics.information": "Optional Information",
|
||||
"account.settings.section.site.preferences": "Site Preferences",
|
||||
"account.settings.section.linked.accounts": "Linked Accounts",
|
||||
"account.settings.section.linked.accounts.description": "You can link your identity accounts to simplify signing in to {siteName}.",
|
||||
"account.settings.field.username": "Username",
|
||||
"account.settings.field.username.help.text": "The name that identifies you on {siteName}. You cannot change your username.",
|
||||
"account.settings.field.full.name": "Full name",
|
||||
"account.settings.field.full.name.empty": "Add name",
|
||||
"account.settings.field.full.name.help.text": "The name that is used for ID verification and that appears on your certificates.",
|
||||
"account.settings.field.full.name.help.text.default": "The name that appears on your public profile.",
|
||||
"account.settings.field.full.name.help.text.default.certificate": "This name is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified": "Verified name",
|
||||
"account.settings.field.name.verified.help.text.verified": "This name has been verified by photo ID.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "This name has been verified by proctoring.",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "This name has been verified by photo ID, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored.certificate": "This name has been verified by proctoring, and is selected to appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored": "Your proctored exam has been submitted. Verified name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.name.verified.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Verified name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificate and public-facing records. Verified Name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.verification.help": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.field.full.name.help.text.submitted": "Verification has been submitted. This usually takes 48 hours or less. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored": "Your proctored exam has been submitted. Full name cannot be changed at this time. Please check back in 2-5 days.",
|
||||
"account.settings.field.full.name.help.text.submitted.certificate": "When identity verification is successful, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.full.name.help.text.submitted.proctored.certificate": "Once your proctored exam passes review, this name will appear on your certificates and public-facing records. Full name cannot be changed at this time.",
|
||||
"account.settings.field.name.verified.success.message": "Your identity verification request has successfully completed. You now have the option of selecting which name you prefer to appear on your certificates and public-records.",
|
||||
"account.settings.field.name.verified.success.message.header": "Your name change request is complete!",
|
||||
"account.settings.field.name.verified.failure.message": "Your most recent identity verification attempt did not pass. Related account settings have been restored.",
|
||||
"account.settings.field.name.verified.failure.message.header": "We were not able to verify your identity.",
|
||||
"account.settings.field.name.verified.failure.message.help.link": "Learn more about ID verification",
|
||||
"account.settings.field.name.verified.submitted.message": "Your identity verification request has been submitted and usually takes between 24 and 48 hours to complete.",
|
||||
"account.settings.field.name.verified.submitted.message.certificate": "When your request is approved, your updated name will appear on all associated certificates and public-facing records.",
|
||||
"account.settings.field.name.verified.submitted.message.header": "Your name change request is almost complete!",
|
||||
"account.settings.field.email": "Email address (Sign in)",
|
||||
"account.settings.field.email.empty": "Add email address",
|
||||
"account.settings.field.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your email address.",
|
||||
"account.settings.field.email.help.text": "You receive messages from {siteName} and course teams at this address.",
|
||||
"account.settings.field.secondary.email": "Recovery email address",
|
||||
"account.settings.field.secondary.email.empty": "Add a recovery email address",
|
||||
"account.settings.field.secondary.email.confirmation": "We’ve sent a confirmation message to {value}. Click the link in the message to update your recovery email address.",
|
||||
"account.settings.email.field.confirmation.header": "Pending confirmation",
|
||||
"account.settings.field.dob": "Year of birth",
|
||||
"account.settings.field.dob.empty": "Add year of birth",
|
||||
"account.settings.field.year_of_birth.options.empty": "Select a year of birth",
|
||||
"account.settings.field.dob.month": "Month",
|
||||
"account.settings.field.dob.year": "Year",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "Please confirm your date of birth",
|
||||
"account.settings.field.dob.form.title": "Enter your birth month and year",
|
||||
"account.settings.field.dob.form.help.text": "We ask for birth month and year information to help us comply with our legal obligations.",
|
||||
"account.settings.field.dob.form.success": "Thank you for entering your information.",
|
||||
"account.settings.field.month_of_birth.options.empty": "Select a month of birth",
|
||||
"account.settingsfield.dob.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.field.country": "Country",
|
||||
"account.settings.field.country.empty": "Add country",
|
||||
"account.settings.field.country.options.empty": "Select a Country",
|
||||
"account.settings.field.state": "State",
|
||||
"account.settings.field.state.empty": "Add state",
|
||||
"account.settings.field.state.options.empty": "Select a State",
|
||||
"account.settings.field.site.language": "Site language",
|
||||
"account.settings.field.site.language.help.text": "The language used throughout this site. This site is currently available in a limited number of languages.",
|
||||
"account.settings.field.education": "Education",
|
||||
"account.settings.field.education.empty": "Add level of education",
|
||||
"account.settings.field.education.levels.empty": "Select a level of education",
|
||||
"account.settings.field.education.levels.p": "Doctorate",
|
||||
"account.settings.field.education.levels.m": "Master's or professional degree",
|
||||
"account.settings.field.education.levels.b": "Bachelor's Degree",
|
||||
"account.settings.field.education.levels.a": "Associate's degree",
|
||||
"account.settings.field.education.levels.hs": "Secondary/high school",
|
||||
"account.settings.field.education.levels.jhs": "Junior secondary/junior high/middle school",
|
||||
"account.settings.field.education.levels.el": "Elementary/primary school",
|
||||
"account.settings.field.education.levels.none": "No formal education",
|
||||
"account.settings.field.education.levels.o": "Other education",
|
||||
"account.settings.field.gender": "Gender",
|
||||
"account.settings.field.gender.empty": "Add gender",
|
||||
"account.settings.field.gender.options.empty": "Select a gender",
|
||||
"account.settings.field.gender.options.f": "Female",
|
||||
"account.settings.field.gender.options.m": "Male",
|
||||
"account.settings.field.gender.options.o": "Other",
|
||||
"account.settings.field.language.proficiencies": "Spoken language",
|
||||
"account.settings.field.language.proficiencies.empty": "Add a spoken language",
|
||||
"account.settings.field.language_proficiencies.options.empty": "Select a Language",
|
||||
"account.settings.field.time.zone": "Time zone",
|
||||
"account.settings.field.time.zone.empty": "Set time zone",
|
||||
"account.settings.field.time.zone.description": "Select the time zone for displaying course dates. If you do not specify a time zone, course dates, including assignment deadlines, will be displayed in your browser’s local time zone.",
|
||||
"account.settings.field.time.zone.default": "Default (Local Time Zone)",
|
||||
"account.settings.field.time.zone.all": "All time zones",
|
||||
"account.settings.field.time.zone.country": "Country time zones",
|
||||
"account.settings.section.social.media": "Social Media Links",
|
||||
"account.settings.section.social.media.description": "Optionally, link your personal accounts to the social media icons on your {siteName} profile.",
|
||||
"account.settings.field.social.platform.name.linkedin": "LinkedIn",
|
||||
"account.settings.field.social.platform.name.linkedin.empty": "Add LinkedIn profile",
|
||||
"account.settings.jump.nav.delete.account": "Delete My Account",
|
||||
"account.settings.field.social.platform.name.twitter": "Twitter",
|
||||
"account.settings.field.social.platform.name.twitter.empty": "Add Twitter profile",
|
||||
"account.settings.field.social.platform.name.facebook": "Facebook",
|
||||
"account.settings.field.social.platform.name.facebook.empty": "Add Facebook profile",
|
||||
"account.settings.editable.field.action.save": "Save",
|
||||
"account.settings.editable.field.action.cancel": "Cancel",
|
||||
"account.settings.editable.field.action.edit": "Edit",
|
||||
"account.settings.static.field.empty": "No value set. Contact your {enterprise} administrator to make changes.",
|
||||
"account.settings.static.field.empty.no.admin": "No value set.",
|
||||
"notification.preferences.notifications.label": "Notifications",
|
||||
"account.settings.field.name.certificate.select": "If checked, this name will appear on your certificates and public-facing records.",
|
||||
"account.settings.field.name.modal.certificate.title": "Choose a preferred name for certificates and public-facing records",
|
||||
"account.settings.field.name.modal.certificate.select": "Select a name",
|
||||
"account.settings.field.name.modal.certificate.option.full": "Full Name",
|
||||
"account.settings.field.name.modal.certificate.option.verified": "Verified Name",
|
||||
"account.settings.field.name.modal.certificate.button.choose": "Choose name",
|
||||
"account.settings.delete.account.before.proceeding": "Before proceeding, please {actionLink}.",
|
||||
"account.settings.delete.account.header": "Delete My Account",
|
||||
"account.settings.delete.account.subheader": "We're sorry to see you go!",
|
||||
"account.settings.delete.account.text.1": "Please note: Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.text.2": "Once your account is deleted, you cannot use it to take courses on {siteName}.",
|
||||
"account.settings.delete.account.text.2.edX": "Once your account is deleted, you cannot use it to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer’s or university’s system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.text.3.link": "Follow these instructions for printing or downloading a certificate",
|
||||
"account.settings.delete.account.text.warning": "Warning: Account deletion is permanent. Please read the above carefully before proceeding. This is an irreversible action, and you will no longer be able to use the same email on {siteName}.",
|
||||
"account.settings.delete.account.text.change.instead": "Want to change your email, name, or password instead?",
|
||||
"account.settings.delete.account.button": "Delete My Account",
|
||||
"account.settings.delete.account.please.activate": "activate your account",
|
||||
"account.settings.delete.account.please.confirm": "confirm your account",
|
||||
"account.settings.delete.account.please.unlink": "unlink all social media accounts",
|
||||
"account.settings.delete.account.modal.header": "Are you sure?",
|
||||
"account.settings.delete.account.modal.text.1": "You have selected \"Delete My Account\". Deletion of your account and personal data is permanent and cannot be undone. {siteName} will not be able to recover your account or the data that is deleted.",
|
||||
"account.settings.delete.account.modal.text.2": "If you proceed, you will be unable to use this account to take courses on {siteName}.",
|
||||
"account.settings.delete.account.modal.text.2.edX": "If you proceed, you will be unable to use this account to take courses on the edX app, edx.org, or any other site hosted by edX. This includes access to edx.org from your employer's or university's system and access to private sites offered by MIT Open Learning, Wharton Executive Education, and Harvard Medical School.",
|
||||
"account.settings.delete.account.modal.enter.password": "If you still wish to continue and delete your account, please enter your account password:",
|
||||
"account.settings.delete.account.modal.confirm.delete": "Yes, Delete",
|
||||
"account.settings.delete.account.modal.confirm.cancel": "Cancel",
|
||||
"account.settings.delete.account.error.unable.to.delete": "Unable to delete account",
|
||||
"account.settings.delete.account.error.no.password": "A password is required",
|
||||
"account.settings.delete.account.error.invalid.password": "Password is incorrect",
|
||||
"account.settings.delete.account.error.unable.to.delete.details": "Sorry, there was an error trying to process your request. Please try again later.",
|
||||
"account.settings.delete.account.modal.after.header": "We're sorry to see you go! Your account will be deleted shortly.",
|
||||
"account.settings.delete.account.modal.after.text": "Account deletion, including removal from email lists, may take a few weeks to fully process through our system. If you want to opt-out of emails before then, please unsubscribe from the footer of any email.",
|
||||
"account.settings.delete.account.modal.after.button": "Close",
|
||||
"account.settings.delete.account.text.3.edX": "You may also lose access to verified certificates and other program credentials like MicroMasters certificates. You can make a copy of these for your records before proceeding with deletion. {actionLink}.",
|
||||
"account.settings.delete.account.text.3": "You may also lose access to verified certificates and other program credentials. You can make a copy of these for your records before proceeding with deletion.",
|
||||
"account.settings.message.demographics.service.issue": "An error occurred attempting to retrieve or save your account information. Please try again later.",
|
||||
"account.settings.field.demographics.gender": "Gender identity",
|
||||
"account.settings.field.demographics.gender.empty": "Add gender identity",
|
||||
"account.settings.field.demographics.gender.options.empty": "Select a gender identity",
|
||||
"account.settings.field.demographics.gender_description": "Gender identity description",
|
||||
"account.settings.field.demographics.gender_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.ethnicity": "Race/Ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.empty": "Add race/ethnicity identity",
|
||||
"account.settings.field.demographics.ethnicity.options.empty": "Select all that apply",
|
||||
"account.settings.field.demographics.income": "Family income",
|
||||
"account.settings.field.demographics.income.empty": "Add family income",
|
||||
"account.settings.field.demographics.income.options.empty": "Select a family income range",
|
||||
"account.settings.field.demographics.military_history": "U.S. Military status",
|
||||
"account.settings.field.demographics.military_history.empty": "Add military status",
|
||||
"account.settings.field.demographics.military_history.options.empty": "Select military status",
|
||||
"account.settings.field.demographics.learner_education_level": "Your education level",
|
||||
"account.settings.field.demographics.learner_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.parent_education_level": "Parents/Guardians education level",
|
||||
"account.settings.field.demographics.parent_education_level.empty": "Add education level",
|
||||
"account.settings.field.demographics.education_level.options.empty": "Select education level",
|
||||
"account.settings.field.demographics.work_status": "Employment status",
|
||||
"account.settings.field.demographics.work_status.empty": "Add employment status",
|
||||
"account.settings.field.demographics.work_status.options.empty": "Select employment status",
|
||||
"account.settings.field.demographics.work_status_description": "Employment status description",
|
||||
"account.settings.field.demographics.work_status_description.empty": "Enter description",
|
||||
"account.settings.field.demographics.current_work_sector": "Current work industry",
|
||||
"account.settings.field.demographics.current_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.future_work_sector": "Future work industry",
|
||||
"account.settings.field.demographics.future_work_sector.empty": "Add work industry",
|
||||
"account.settings.field.demographics.work_sector.options.empty": "Select work industry",
|
||||
"account.settings.section.demographics.why": "Why does {siteName} collect this information?",
|
||||
"account.settings.name.change.title.id": "This name change requires identity verification",
|
||||
"account.settings.name.change.title.begin": "Before we begin",
|
||||
"account.settings.name.change.warning.one": "Warning: This action updates the name that appears on all certificates that have been earned on this account in the past and any certificates you are currently earning or will earn in the future.",
|
||||
"account.settings.name.change.warning.two": "This action cannot be undone without verifying your identity.",
|
||||
"account.settings.name.change.id.name.label": "Enter your name as it appears on your unexpired student, work, or government-issued identification card.",
|
||||
"account.settings.name.change.id.name.placeholder": "Enter the name on your photo ID",
|
||||
"account.settings.name.change.error.valid.name": "Please enter a valid name.",
|
||||
"account.settings.name.change.error.general": "A technical error occurred. Please try again.",
|
||||
"account.settings.name.change.continue": "Continue",
|
||||
"account.settings.name.change.cancel": "Cancel",
|
||||
"error.notfound.message": "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.",
|
||||
"account.settings.editable.field.password.reset.button.confirmation.support.link": "technical support",
|
||||
"account.settings.editable.field.password.reset.button.confirmation": "We've sent a message to {email}. Click the link in the message to reset your password. Didn't receive the message? Contact {technicalSupportLink}.",
|
||||
"account.settings.editable.field.password.reset.button": "Reset Password",
|
||||
"account.settings.editable.field.password.reset.button.forbidden": "Your previous request is in progress, please try again in few moments.",
|
||||
"account.settings.editable.field.password.reset.label": "Password",
|
||||
"account.settings.sso.link.account": "Sign in with {name}",
|
||||
"account.settings.sso.account.connected": "Linked",
|
||||
"account.settings.sso.account.disconnect.error": "There was a problem disconnecting this account. Contact support if the problem persists.",
|
||||
"account.settings.sso.unlink.account": "Unlink {name} account",
|
||||
"account.settings.sso.no.providers": "No accounts can be linked at this time.",
|
||||
"account.page.title": "Account | {siteName}",
|
||||
"id.verification.access.blocked.denied": "We cannot verify your identity at this time. If you have yet to activate your account, please check your spam folder for the activation email from {email}.",
|
||||
"id.verification.next": "Next",
|
||||
"id.verification.support": "support",
|
||||
"id.verification.example.card.alt": "Example of a valid identification card with a full name and photo.",
|
||||
"id.verification.requirements.title": "Photo Verification Requirements",
|
||||
"id.verification.requirements.description": "In order to complete Photo Verification, you will need the following:",
|
||||
"id.verification.requirements.card.device.title": "Device with Camera",
|
||||
"id.verification.requirements.card.device.allow": "Allow",
|
||||
"id.verification.requirements.card.id.title": "Photo Identification Card",
|
||||
"id.verification.requirements.card.id.text": "You need a valid identification card that contains your full name and photo, such as a driver’s license or passport.",
|
||||
"id.verification.privacy.title": "Privacy Information",
|
||||
"id.verification.privacy.need.photo.question": "Why does {siteName} need my photo?",
|
||||
"id.verification.privacy.need.photo.answer": "We use your verification photos to confirm your identity and ensure the validity of your certificate.",
|
||||
"id.verification.privacy.do.with.photo.question": "What does {siteName} do with this photo?",
|
||||
"id.verification.privacy.do.with.photo.answer": "We securely encrypt your photo and send it our authorization service for review. Your photo and information are not saved or visible anywhere on {siteName} after the verification process is complete.",
|
||||
"id.verification.access.blocked.title": "Identity Verification",
|
||||
"id.verification.access.blocked.enrollment": "You are not currently enrolled in a course that requires identity verification.",
|
||||
"id.verification.access.blocked.pending": "You have already submitted your verification information. You will see a message on your dashboard when the verification process is complete (usually within 5 days).",
|
||||
"id.verification.photo.take": "Take Photo",
|
||||
"id.verification.photo.retake": "Retake Photo?",
|
||||
"id.verification.photo.enable.detection": "Enable Face Detection",
|
||||
"id.verification.photo.enable.detection.portrait.help.text": "If checked, a box will appear around your face. Your face can be seen clearly if the box around it is blue. If your face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.enable.detection.id.help.text": "If checked, a box will appear around the face on your ID card. The face can be seen clearly if the box around it is blue. If the face is not in a good position or undetectable, the box will be red.",
|
||||
"id.verification.photo.feedback.correct": "Face is in a good position.",
|
||||
"id.verification.photo.feedback.two.faces": "More than one face detected.",
|
||||
"id.verification.photo.feedback.no.faces": "No face detected.",
|
||||
"id.verification.photo.feedback.top.left": "Incorrect position. Top left.",
|
||||
"id.verification.photo.feedback.top.center": "Incorrect position. Top center.",
|
||||
"id.verification.photo.feedback.top.right": "Incorrect position. Top right.",
|
||||
"id.verification.photo.feedback.center.left": "Incorrect position. Center left.",
|
||||
"id.verification.photo.feedback.center.center": "Incorrect position. Too close to camera.",
|
||||
"id.verification.photo.feedback.center.right": "Incorrect position. Center right.",
|
||||
"id.verification.photo.feedback.bottom.left": "Incorrect position. Bottom left.",
|
||||
"id.verification.photo.feedback.bottom.center": "Incorrect position. Bottom center.",
|
||||
"id.verification.photo.feedback.bottom.right": "Incorrect position. Bottom right.",
|
||||
"id.verification.camera.access.title": "Camera Permissions",
|
||||
"id.verification.camera.access.title.success": "Camera Access Enabled",
|
||||
"id.verification.camera.access.title.failed": "Camera Access Failed",
|
||||
"id.verification.camera.access.click.allow": "Please make sure to click \"Allow\"",
|
||||
"id.verification.camera.access.enable": "Enable Camera",
|
||||
"id.verification.camera.access.problems": "Having problems?",
|
||||
"id.verification.camera.access.skip": "Skip and upload image files instead",
|
||||
"id.verification.camera.access.success": "Looks like your camera is working and ready.",
|
||||
"id.verification.camera.access.failure": "It looks like we're unable to access your camera. You will need to upload image files of you and your photo id.",
|
||||
"id.verification.camera.access.failure.temporary": "It looks like we're unable to access your camera. Please verify that your webcam is connected and that you have allowed your browser to access it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome": "To enable camera access in Chrome:",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step1": "Open Chrome.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2": "Navigate to More > Settings.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.windows": "For Windows: Alt+F, Alt+E, or F10 followed by the spacebar",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step2.mac": "For Mac: Command+,",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step3": "Under the \"Privacy and security\" tab, select \"Site Settings\" and then \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step4": "Under \"Blocked,\" find \"edx.org\" and select it.",
|
||||
"id.verification.camera.access.failure.temporary.chrome.step5": "In the \"Permissions\" section, update the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.temporary.ie11": "To enable camera access in Internet Explorer:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "Open the Flash Player Settings Manager by navigating to Windows Settings > Control Panel > Flash Player.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step2": "Select the \"Camera and Mic\" tab, and then select the \"Camera and Microphone Settings by Site\" button.",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step3": "Choose \"edx.org\" from the list of websites and change the permissions by selecting \"Allow\" in the dropdown menu.",
|
||||
"id.verification.camera.access.failure.temporary.firefox": "To enable camera access in Firefox:",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step1": "Open Firefox.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "Enter \"about:preferences\" in the URL bar.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "Select the \"Privacy & Security\" tab, and navigate to the \"Permissions\" section.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "Next to \"Camera,\" select the \"Settings…\" button.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "In the search bar, enter \"edx.org.\"",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "In the status column for \"edx.org,\" select \"Allow\" from the drop down.",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step7": "Select \"Save Changes.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari": "To enable camera access in Safari:",
|
||||
"id.verification.camera.access.failure.temporary.safari.step1": "Open Safari.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step2": "Click on the Safari app menu, then select \"Preferences.\" You can also use Command+, as a keyboard shortcut.",
|
||||
"id.verification.camera.access.failure.temporary.safari.step3": "Select the \"Websites\" tab and then select \"Camera.\"",
|
||||
"id.verification.camera.access.failure.temporary.safari.step4": "Select \"edx.org\" and change the camera permissions to \"Allow.\"",
|
||||
"id.verification.camera.access.failure.unsupported": "It looks like your browser does not support camera access.",
|
||||
"id.verification.camera.access.failure.unsupported.chrome.explanation": "The Chrome browser currently does not support camera access on iOS devices, such as iPhones and iPads.",
|
||||
"id.verification.camera.access.failure.unsupported.instructions": "Please use another browser to complete Identity Verification.",
|
||||
"id.verification.photo.tips.title": "Helpful Photo Tips",
|
||||
"id.verification.photo.tips.description": "Next, we'll need you to take a photo of your face. Please review the helpful tips below.",
|
||||
"id.verification.photo.tips.list.title": "Photo Tips",
|
||||
"id.verification.photo.tips.list.description": "To take a successful photo, make sure that:",
|
||||
"id.verification.photo.tips.list.well.lit": "Your face is well-lit.",
|
||||
"id.verification.photo.tips.list.inside.frame": "Your entire face fits inside the frame.",
|
||||
"id.verification.portrait.photo.title.camera": "Take a Photo of Yourself",
|
||||
"id.verification.portrait.photo.instructions.camera": "When your face is in position, use the Take Photo button below to take your photo.",
|
||||
"id.verification.camera.help.sight.question": "What if I can't see the camera image or if I can't see my photo to determine which side is visible?",
|
||||
"id.verification.camera.help.sight.answer.portrait": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally the best position for a headshot is approximately 12-18 inches (30-45 centimeters) from the camera, with your head centered relative to the computer screen. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle.",
|
||||
"id.verification.camera.help.sight.answer.id": "You may be able to complete the image capture procedure without assistance, but it may take a couple of submission attempts to get the camera positioning right. Optimal camera positioning varies with each computer, but generally, the best position for a photo of an ID card is 8-12 inches (20-30 centimeters) from the camera, with the ID card centered relative to the camera. If the photos you submit are rejected, try moving the computer or camera orientation to change the lighting angle. The most common reason for rejection is inability to read the text on the ID card.",
|
||||
"id.verification.camera.help.difficulty.question.portrait": "What if I have difficulty holding my head in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.question.id": "What if I have difficulty holding my ID in position relative to the camera?",
|
||||
"id.verification.camera.help.difficulty.answer": "If you require assistance with taking a photo for submission, contact {siteName} support for additional suggestions.",
|
||||
"id.verification.id.photo.unclear.question": "Is your ID card image not clear or too blurry?",
|
||||
"id.verification.id.tips.title": "Helpful Identification Card Tips",
|
||||
"id.verification.id.tips.description": "Next, we'll need you to take a photo of a valid identification card that includes your full name and photo, such as a driver’s license or passport. Please have your ID ready.",
|
||||
"id.verification.id.tips.list.well.lit": "Your identification card is well-lit.",
|
||||
"id.verification.id.tips.list.clear": "Ensure that you can see your photo and clearly read your name.",
|
||||
"id.verification.id.photo.title.camera": "Take a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.title.upload": "Upload a Photo of Your Identification Card",
|
||||
"id.verification.id.photo.preview.alt": "Preview of photo ID.",
|
||||
"id.verification.id.photo.instructions.camera": "When your ID is in position, use the Take Photo button below to take your photo. Please use a passport, driver’s license, or another identification card that includes your full name and a picture of your face.",
|
||||
"id.verification.id.photo.instructions.upload": "Please upload a photo of your identification card. Ensure the entire ID fits inside the frame and is well-lit. The file size must be under 10 MB. Supported formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "The file you have selected is not a supported image type. Please choose from the following formats: ",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "The file you have selected is too large. Please try again with a file less than 10MB.",
|
||||
"id.verification.name.check.title": "Double-Check Your Name",
|
||||
"id.verification.name.check.instructions": "Does the name below match the name on your photo ID? If not, update the name below to match your photo ID.",
|
||||
"id.verification.name.check.mismatch.information": "If the name below does not match your photo ID, your identity verification will be denied.",
|
||||
"id.verification.name.error": "Please enter your name as it appears on your photo ID.",
|
||||
"id.verification.account.name.warning.prefix": "Please Note:",
|
||||
"id.verification.account.name.settings": "Account Settings",
|
||||
"id.verification.name.label": "Name",
|
||||
"id.verification.account.name.photo.alt": "Photo of your ID to be submitted.",
|
||||
"id.verification.review.title": "Review Your Photos",
|
||||
"id.verification.review.description": "Make sure we can verify your identity with the photos and information you have provided.",
|
||||
"id.verification.review.portrait.label": "Your Portrait",
|
||||
"id.verification.review.portrait.alt": "Photo of your face to be submitted.",
|
||||
"id.verification.review.portrait.retake": "Retake Portrait Photo",
|
||||
"id.verification.review.id.label": "Your Identification Card",
|
||||
"id.verification.review.id.alt": "Photo of your identification card to be submitted.",
|
||||
"id.verification.review.id.retake": "Retake ID Photo",
|
||||
"id.verification.review.confirm": "Submit",
|
||||
"id.verification.submission.alert.error.face": "A photo of your face is required. Please retake your portrait photo.",
|
||||
"id.verification.submission.alert.error.id": "A photo of your ID card is required. Please retake your ID photo.",
|
||||
"id.verification.submission.alert.error.name": "A valid account name is required. Please update your account name to match the name on your ID.",
|
||||
"id.verification.submission.alert.error.unsupported": "One or more of the files you have uploaded is in an unsupported format. Please choose from the following: ",
|
||||
"id.verification.review.error": "{siteName} Support Page",
|
||||
"id.verification.submitted.title": "Identity Verification in Progress",
|
||||
"id.verification.submitted.text": "We have received your information and are verifying your identity. You will be notified when the verification process is complete (usually within 5 days). In the meantime, you can still access all available course content.",
|
||||
"id.verification.return.dashboard": "Return to Your Dashboard",
|
||||
"id.verification.return.course": "Return to Course",
|
||||
"id.verification.return.generic": "Return",
|
||||
"id.verification.photo.upload.help.title": "Upload a Photo Instead",
|
||||
"id.verification.photo.camera.help.title": "Use Your Camera Instead",
|
||||
"id.verification.photo.upload.help.text": "If you are having trouble using the photo capture above, you may want to upload a photo instead. To upload a photo, click the button below.",
|
||||
"id.verification.photo.camera.help.text": "If you are having trouble uploading a photo above, you may want to use your camera instead. To use your camera, click the button below.",
|
||||
"id.verification.upload.help.button": "Switch to Upload Mode",
|
||||
"id.verification.camera.help.button": "Switch to Camera Mode",
|
||||
"id.verification.request.camera.access.instructions": "In order to take a photo using your webcam, you may receive a browser prompt for access to your camera. {clickAllow}",
|
||||
"id.verification.requirements.account.managed.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help before completing the Photo Verification process.",
|
||||
"id.verification.requirements.card.device.text": "You need a device that has a camera. If you receive a browser prompt for access to your camera, please make sure to click {allow}.",
|
||||
"id.verification.account.name.summary.alert": "Your account settings are managed by {managerTitle}. If the name on your photo ID does not match the name on your account, please contact your {profileDataManager} administrator or {support} for help.",
|
||||
"idv.submission.alert.error": "\n We encountered a technical error while trying to submit ID verification.\n This might be a temporary issue, so please try again in a few minutes.\n If the problem persists, please go to {support_link} for help.\n ",
|
||||
"id.verification.account.name.edit": "Edit {sr}",
|
||||
"notification.preference.heading": "Notifications",
|
||||
"notification.preference.app.title": "{\n key, select,\n discussion {Discussions}\n coursework {Course Work}\n other {{key}}\n }",
|
||||
"notification.preference.title": "{\n text, select,\n core {Core notifications}\n newDiscussionPost {New discussion posts}\n newQuestionPost {New question posts}\n other {{text}}\n }",
|
||||
"notification.preference.type.label": "Type",
|
||||
"notification.preference.web,label": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses",
|
||||
"notification.preference.guide.link": "as detailed here",
|
||||
"notification.preference.guide.body": "Notifications for certain activities are enabled by default, "
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user