Compare commits
119 Commits
mashal-m/p
...
Ali-Abbas/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c637bf608 | ||
|
|
83868a2900 | ||
|
|
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 |
1
.env
1
.env
@@ -30,3 +30,4 @@ ENABLE_DOB_UPDATE=''
|
||||
MARKETING_EMAILS_OPT_IN=''
|
||||
APP_ID=
|
||||
MFE_CONFIG_API_URL=
|
||||
PASSWORD_RESET_SUPPORT_LINK=''
|
||||
|
||||
@@ -31,4 +31,5 @@ ENABLE_DOB_UPDATE=''
|
||||
MARKETING_EMAILS_OPT_IN=''
|
||||
APP_ID=
|
||||
MFE_CONFIG_API_URL=
|
||||
PASSWORD_RESET_SUPPORT_LINK='mailto:support@example.com'
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@@ -9,18 +9,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node: [16]
|
||||
npm: [8.5.0]
|
||||
npm-test:
|
||||
- i18n_extract
|
||||
- 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 }}
|
||||
|
||||
2
.github/workflows/lockfileversion-check.yml
vendored
2
.github/workflows/lockfileversion-check.yml
vendored
@@ -10,5 +10,5 @@ on:
|
||||
|
||||
jobs:
|
||||
version-check:
|
||||
uses: openedx/.github/.github/workflows/lockfileversion-check.yml@master
|
||||
uses: openedx/.github/.github/workflows/lockfileversion-check-v3.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
|
||||
41
.github/workflows/update-browserlist.yml
vendored
41
.github/workflows/update-browserlist.yml
vendored
@@ -1,41 +0,0 @@
|
||||
name: Update Browserlist DB
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-dep:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node: [16]
|
||||
npm: [8.5.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- run: npm install -g npm@${{ matrix.npm }}
|
||||
- run: make requirements
|
||||
|
||||
- name: Update dependencies
|
||||
run: npx browserslist@latest --update-db
|
||||
|
||||
- name: setup testeng-ci
|
||||
run: |
|
||||
git clone https://github.com/edx/testeng-ci.git
|
||||
cd $GITHUB_WORKSPACE/testeng-ci
|
||||
pip install -r requirements/base.txt
|
||||
- name: create pull request
|
||||
id: createpullrequest
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.requirements_bot_github_token }}
|
||||
GITHUB_USER_EMAIL: ${{ secrets.requirements_bot_github_email }}
|
||||
run: |
|
||||
cd $GITHUB_WORKSPACE/testeng-ci
|
||||
python -m jenkins.pull_request_creator --repo-root=$GITHUB_WORKSPACE \
|
||||
--target-branch="master" --base-branch-name="update-browserslist" \
|
||||
--commit-message="chore: update browserslist" --pr-title="Update browserslist DB" \
|
||||
--pr-body="Updated browserlist DB" --delete-old-pull-requests --output-pr-url-for-github-action
|
||||
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 }}
|
||||
20
Makefile
20
Makefile
@@ -1,12 +1,11 @@
|
||||
export TRANSIFEX_RESOURCE = frontend-app-account
|
||||
transifex_resource = frontend-app-account
|
||||
transifex_langs = "ar,fr,es_419,zh_CN,pt,it,de,uk,ru,hi,fr_CA"
|
||||
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
|
||||
@@ -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 -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:
|
||||
|
||||
12
README.rst
12
README.rst
@@ -3,8 +3,6 @@
|
||||
frontend-app-account
|
||||
====================
|
||||
|
||||
Please tag **@edx/community-engineering** on any PRs or issues. Thanks!
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
@@ -55,6 +53,16 @@ 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.
|
||||
|
||||
edX-specific Environment Variables
|
||||
**********************************
|
||||
|
||||
|
||||
27955
package-lock.json
generated
27955
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
45
package.json
45
package.json
@@ -27,11 +27,11 @@
|
||||
"extends @edx/browserslist-config"
|
||||
],
|
||||
"dependencies": {
|
||||
"@edx/brand": "npm:@edx/brand-openedx@1.1.0",
|
||||
"@edx/frontend-component-footer": "11.5.2",
|
||||
"@edx/frontend-component-header": "3.5.0",
|
||||
"@edx/frontend-platform": "2.6.2",
|
||||
"@edx/paragon": "19.25.3",
|
||||
"@edx/brand": "npm:@edx/brand-openedx@1.2.0",
|
||||
"@edx/frontend-component-footer": "12.1.2",
|
||||
"@edx/frontend-component-header": "4.4.4",
|
||||
"@edx/frontend-platform": "4.6.0",
|
||||
"@edx/paragon": "20.44.0",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.36",
|
||||
"@fortawesome/free-brands-svg-icons": "5.15.4",
|
||||
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
||||
@@ -42,9 +42,9 @@
|
||||
"@tensorflow/tfjs-core": "3.21.0",
|
||||
"bowser": "2.11.0",
|
||||
"classnames": "2.3.2",
|
||||
"core-js": "3.26.1",
|
||||
"core-js": "3.31.1",
|
||||
"font-awesome": "4.7.0",
|
||||
"form-urlencoded": "4.5.1",
|
||||
"form-urlencoded": "6.1.0",
|
||||
"formdata-polyfill": "4.0.10",
|
||||
"history": "4.10.1",
|
||||
"jslib-html5-camera-photo": "3.3.4",
|
||||
@@ -57,12 +57,13 @@
|
||||
"lodash.omit": "4.5.0",
|
||||
"lodash.pick": "4.4.0",
|
||||
"lodash.pickby": "4.6.0",
|
||||
"long": "5.2.1",
|
||||
"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",
|
||||
"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": "5.2.1",
|
||||
@@ -70,25 +71,25 @@
|
||||
"react-router-hash-link": "2.4.3",
|
||||
"react-scrollspy": "3.4.3",
|
||||
"react-transition-group": "4.4.5",
|
||||
"redux": "4.1.2",
|
||||
"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",
|
||||
"redux-saga": "1.2.3",
|
||||
"redux-thunk": "2.4.2",
|
||||
"regenerator-runtime": "0.13.11",
|
||||
"reselect": "4.0.0",
|
||||
"reselect": "4.1.8",
|
||||
"universal-cookie": "4.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@edx/browserslist-config": "1.1.1",
|
||||
"@edx/frontend-build": "12.4.0",
|
||||
"@edx/browserslist-config": "1.2.0",
|
||||
"@edx/frontend-build": "^12.9.0-alpha.1",
|
||||
"@edx/reactifex": "1.1.0",
|
||||
"@testing-library/jest-dom": "5.16.5",
|
||||
"@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.7",
|
||||
"react-test-renderer": "16.14.0",
|
||||
"react-test-renderer": "17.0.2",
|
||||
"reactifex": "1.1.1",
|
||||
"redux-mock-store": "1.5.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ import {
|
||||
import { fetchSiteLanguages } from './site-language';
|
||||
import CoachingToggle from './coaching/CoachingToggle';
|
||||
import DemographicsSection from './demographics/DemographicsSection';
|
||||
import { fetchCourseList } from '../notification-preferences/data/thunks';
|
||||
|
||||
class AccountSettingsPage extends React.Component {
|
||||
constructor(props, context) {
|
||||
@@ -79,6 +80,7 @@ class AccountSettingsPage extends React.Component {
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.props.fetchCourseList();
|
||||
this.props.fetchSettings();
|
||||
this.props.fetchSiteLanguages();
|
||||
sendTrackingLogEvent('edx.user.settings.viewed', {
|
||||
@@ -819,12 +821,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}
|
||||
@@ -908,6 +910,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,
|
||||
})),
|
||||
@@ -959,6 +962,7 @@ AccountSettingsPage.defaultProps = {
|
||||
};
|
||||
|
||||
export default connect(accountSettingsPageSelector, {
|
||||
fetchCourseList,
|
||||
fetchSettings,
|
||||
saveSettings,
|
||||
saveMultipleSettings,
|
||||
|
||||
@@ -565,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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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';
|
||||
|
||||
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',
|
||||
@@ -67,6 +73,21 @@ const JumpNav = ({
|
||||
</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>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -2,7 +2,10 @@ import React from 'react';
|
||||
import { FormattedMessage } from '@edx/frontend-platform/i18n';
|
||||
|
||||
const NotFoundPage = () => (
|
||||
<div className="container-fluid d-flex py-5 justify-content-center align-items-start text-center">
|
||||
<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"
|
||||
|
||||
@@ -62,6 +62,7 @@ exports[`CoachingConsent disables name field on enterprise user 1`] = `
|
||||
id="fullName"
|
||||
name="full-name"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
@@ -89,6 +90,7 @@ exports[`CoachingConsent disables name field on enterprise user 1`] = `
|
||||
id="phoneNumber"
|
||||
name="phone_number"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
@@ -221,6 +223,7 @@ exports[`CoachingConsent should render 1`] = `
|
||||
id="fullName"
|
||||
name="full-name"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
@@ -248,6 +251,7 @@ exports[`CoachingConsent should render 1`] = `
|
||||
id="phoneNumber"
|
||||
name="phone_number"
|
||||
onBlur={[Function]}
|
||||
onChange={[Function]}
|
||||
type="text"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -4,10 +4,10 @@ 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', () => function () {
|
||||
jest.mock('./ConfirmationModal', () => function ConfirmationModalMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('./SuccessModal', () => function () {
|
||||
jest.mock('./SuccessModal', () => function SuccessModalMock() {
|
||||
return <></>;
|
||||
});
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ Array [
|
||||
<div
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
aria-label="Are you sure?"
|
||||
@@ -234,6 +235,7 @@ Array [
|
||||
<div
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
aria-label="Are you sure?"
|
||||
|
||||
@@ -40,6 +40,7 @@ Array [
|
||||
<div
|
||||
className="pgn__modal-backdrop"
|
||||
onClick={[MockFunction]}
|
||||
onKeyDown={[MockFunction]}
|
||||
/>
|
||||
<div
|
||||
className="mw-sm p-5 bg-white mx-auto my-3"
|
||||
|
||||
@@ -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>
|
||||
@@ -1347,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>
|
||||
@@ -1418,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>
|
||||
@@ -2057,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>
|
||||
@@ -2696,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>
|
||||
@@ -3342,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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
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);
|
||||
|
||||
@@ -14,12 +16,27 @@ describe('JumpNav', () => {
|
||||
});
|
||||
|
||||
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', () => {
|
||||
@@ -28,7 +45,9 @@ describe('JumpNav', () => {
|
||||
// "Invariant failed: You should not use <NavLink> outside a <Router>"
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<IntlJumpNav {...props} />
|
||||
<AppProvider store={store}>
|
||||
<IntlJumpNav {...props} />
|
||||
</AppProvider>
|
||||
</IntlProvider>
|
||||
</Router>
|
||||
))
|
||||
@@ -51,7 +70,9 @@ describe('JumpNav', () => {
|
||||
// Same as previous test
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<IntlJumpNav {...props} />
|
||||
<AppProvider store={store}>
|
||||
<IntlJumpNav {...props} />
|
||||
</AppProvider>
|
||||
</IntlProvider>
|
||||
</Router>
|
||||
))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
exports[`JumpNav should not render Optional Information 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"
|
||||
@@ -80,7 +80,7 @@ exports[`JumpNav should not render Optional Information link 1`] = `
|
||||
|
||||
exports[`JumpNav should render Optional Information 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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,19 +1,27 @@
|
||||
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 frMessages from './messages/fr.json';
|
||||
import es419Messages from './messages/es_419.json';
|
||||
import zhcnMessages from './messages/zh_CN.json';
|
||||
import ptMessages from './messages/pt.json';
|
||||
import itMessages from './messages/it.json';
|
||||
import ukMessages from './messages/uk.json';
|
||||
import deMessages from './messages/de.json';
|
||||
import ruMessages from './messages/ru.json';
|
||||
import hiMessages from './messages/hi.json';
|
||||
import es419Messages from './messages/es_419.json';
|
||||
import faIRMessages from './messages/fa_IR.json';
|
||||
import frMessages from './messages/fr.json';
|
||||
import frCAMessages from './messages/fr_CA.json';
|
||||
import hiMessages from './messages/hi.json';
|
||||
import itMessages from './messages/it.json';
|
||||
import ptMessages from './messages/pt.json';
|
||||
import ruMessages from './messages/ru.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,
|
||||
pt: ptMessages,
|
||||
@@ -23,6 +31,14 @@ const messages = {
|
||||
'fr-ca': frCAMessages,
|
||||
ru: ruMessages,
|
||||
uk: ukMessages,
|
||||
'de-de': dedeCAMessages,
|
||||
'it-it': ititCAMessages,
|
||||
'pt-pt': ptptCAMessages,
|
||||
};
|
||||
|
||||
export default messages;
|
||||
export default [
|
||||
headerMessages,
|
||||
paragonMessages,
|
||||
footerMessages,
|
||||
appMessages,
|
||||
];
|
||||
|
||||
@@ -57,12 +57,12 @@
|
||||
"account.settings.field.year_of_birth.options.empty": "تحديد سنة الميلاد",
|
||||
"account.settings.field.dob.month": "الشهر",
|
||||
"account.settings.field.dob.year": "السنة",
|
||||
"account.settings.field.month.year.default": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select 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": "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.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": "البلد",
|
||||
@@ -114,6 +114,7 @@
|
||||
"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": "اختر اسمًا",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
370
src/i18n/messages/de_DE.json
Normal file
370
src/i18n/messages/de_DE.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"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.coaching.consent.welcome.header": "Starten Sie jetzt.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Wir begleiten Sie von Anfang bis Ende. ",
|
||||
"account.settings.coaching.consent.description": "Zu den MicroBachelors-Programmen gehört ein Coaching, das sich auf Ihre Karriere, Ihre Ausbildung und die Art und Weise konzentriert, wie Sie durch persönliche Kommunikation mit einem erfahrenen Fachmann Ergebnisse erzielen. Wenn Sie interessiert sind, geben Sie die folgenden Informationen ein und klicken Sie auf \"Senden\". Unser Coaching-Partner wird sich per E-Mail und / oder SMS mit Ihnen in Verbindung setzen, um Sie voranzubringen. Geschäftsbedingungen gelten.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* Die Coaching Dienste erfordern keine zusätzlichen Kosten für Teilnehmer mit US-Telefonnummern. Das Coaching beinhaltet regelmäßige SMS-Nachrichten. Es gelten die üblichen Tarife für SMS-Nachrichten. Mit dem Text STOP können Sie sich jederzeit abmelden.",
|
||||
"account.settings.coaching.consent.accept-coaching": "Anmeldung zum Coaching ",
|
||||
"account.settings.coaching.consent.decline-coaching": "Ich bevorzuge es, ohne den coaching Service fortzufahren",
|
||||
"account.settings.coaching.consent.label.name": "Bitte bestätigen Sie Ihren Namen",
|
||||
"account.settings.coaching.consent.label.phone-number": "Bitte geben Sie Ihre Handynummer an",
|
||||
"account.settings.coaching.consent.success.header": "Super!",
|
||||
"account.settings.coaching.consent.success.message": "Sie sind nun für das Coaching angemeldet. Sie erhalten eine SMS-Nachricht als Bestätigung in den kommenden Tagen.",
|
||||
"account.settings.coaching.consent.success.continue": "Kurs starten",
|
||||
"account.settings.coaching.managed.support": "Support",
|
||||
"account.settings.coaching.managed.alert": "Ihr Name wird von {managerTitle} verwaltet. Wenden Sie sich an Ihren Administrator, um Hilfe zu erhalten.",
|
||||
"account.settings.field.phone_number": "Telefonnummer",
|
||||
"account.settings.field.phone_number.empty": "Eine Telefonnummer hinzufügen",
|
||||
"account.settings.field.coaching_consent": "Einverständnis zum Coaching",
|
||||
"account.settings.field.coaching_consent.tooltip": "MicroBachelors-Programme umfassen SMS-basiertes Coaching, das Ihnen hilft, Bildungserfahrungen mit Ihren Karrierezielen durch persönliche Beratung zu verbinden. Coaching-Services sind ohne zusätzliche Kosten enthalten und stehen Lernenden mit US-Handynummern zur Verfügung. Es gelten die Standard-Messaging-Gebühren. Senden Sie jederzeit eine SMS mit „STOP“, um Nachrichten abzubestellen.",
|
||||
"account.settings.field.coaching_consent.error": "Eine gültige Telefonnummer ist nötig, um sich für das Coaching anzumelden",
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -57,12 +57,12 @@
|
||||
"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": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"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": "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.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",
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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 {Core} newPost {Nueva publicación} newComment {Nuevo comentario} newResponse {Nueva respuesta} newCommentOnPost {Nuevo comentario en publicación} newResponseOnComment {Nueva respuesta en comentario} newAssignment {Nueva tarea} newGrade {Nueva calificación} otro { {texto}} }",
|
||||
"notification.preference.help.type": "Tipo",
|
||||
"notification.preference.help.web": "Sitio Web",
|
||||
"notification.preference.help.email": "Correo electrónico",
|
||||
"notification.preference.help.push": "Empujar",
|
||||
"notification.preference.load.more.courses": "Cargar más cursos"
|
||||
}
|
||||
370
src/i18n/messages/fa_IR.json
Normal file
370
src/i18n/messages/fa_IR.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"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": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"account.settings.field.dob.form.button": "لطفا تاریخ تولد را وارد کنید",
|
||||
"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": "ماه تولد خود را برگزینید",
|
||||
"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": "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.coaching.consent.welcome.header": "بیا آغاز کنیم.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "ما از آغاز تا پایان با شما هستیم",
|
||||
"account.settings.coaching.consent.description": "برنامههای MicroBachelors شامل مربیگری است که بر حرفه، تحصیلات و نحوه دستیابی به نتایج از طریق ارتباط یکبهیک با یک متخصص با تجربه تمرکز دارد. اگر علاقهمند هستید، اطلاعات زیر را ارائه دهید و روی «ارسال» کلیک کنید، و شریک مربی ما از طریق رایانامه و/یا پیام متنی با شما در ارتباط خواهد بود تا به شما در حرکت به جلو کمک کند. شرایط و ضوابط اعمال میشود.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* خدمات مربیگری بدون هزینه اضافی برای یادگیرندگان با شماره تلفن ایالات متحده گنجانده شده است. مربیگری شامل پیامهای متنی مکرر است. ممکن است نرخ پیام و داده اعمال شود. برای انصراف، STOP را پیامک کنید.",
|
||||
"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": "برنامه های MicroBachelors شامل مربیگری مبتنی بر پیام متنی است که به شما کمک میکند تجربیات آموزشی را با اهداف شغلی خود از طریق مشاوره یک به یک، جفت کنید. خدمات مربیگری بدون هزینه اضافی گنجانده شده است و برای زبان آموزان با شماره تلفن همراه ایالات متحده در دسترس است. نرخ استاندارد پیامرسانی اعمال میشود. برای انصراف از پیامها، در هر زمان «توقف» را پیامک کنید.",
|
||||
"account.settings.field.coaching_consent.error": "ارائه یک شماره تلفن معتبر ایالات متحده برای شرکت در مربیگری ضروری است",
|
||||
"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": "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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -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.",
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -202,8 +203,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",
|
||||
@@ -320,9 +321,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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -29,20 +29,20 @@
|
||||
"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 documents publics. Un nom vérifié ne peut pas être modifié pour le moment.",
|
||||
"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 documents publics.",
|
||||
"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 tous les certificats associés et les documents publics.",
|
||||
"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",
|
||||
@@ -50,15 +50,15 @@
|
||||
"account.settings.field.email.help.text": "Vous recevrez des messages de {siteName} et des équipes pédagogiques à 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 à {valeur}. Cliquez sur le lien dans le message pour mettre à jour votre 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": "Select month",
|
||||
"account.settings.field.dob.year.default": "Select year",
|
||||
"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.",
|
||||
@@ -77,7 +77,7 @@
|
||||
"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": "Maitrise ou diplôme professionnel",
|
||||
"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",
|
||||
@@ -112,23 +112,24 @@
|
||||
"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 votree {entreprise} pour effectuer des modifications.",
|
||||
"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îtres 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.coaching.consent.welcome.header": "Commençons.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Nous vous accompagnons du début jusqu'à la fin",
|
||||
"account.settings.coaching.consent.description": "Un parcours MicroBachelors inclus du coaching avec un professionnel expériementé qui vous guidera sur votre carrière, votre éducation et comment atteindre vos objectifs. Si vous êtes intéressés, entrez les informations requises ci-dessous et cliquez \"Soumettre\". Un guide vous contactera par courriel ou texto pour vous aider à progresser. Termes et conditions s'appliquent. *",
|
||||
"account.settings.coaching.consent.description": "Un parcours MicroBachelors inclus du coaching avec un professionnel expérimenté qui vous guidera sur votre carrière, votre éducation et comment atteindre vos objectifs. Si vous êtes intéressés, entrez les informations requises ci-dessous et cliquez \"Soumettre\". Un guide vous contactera par courriel ou texto pour vous aider à progresser. Termes et conditions s'appliquent. *",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* Nos services de coaching sont inclus sans coût additionnel aux apprenant ayant un numéro de téléphone US. Le coaching comprend des textos récurrents. Le coût des messages et des données peuvent s'appliquer. Texter STOP pour arrêter.",
|
||||
"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.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.header": "Succès!",
|
||||
"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": "Commencer mon cours",
|
||||
"account.settings.coaching.managed.support": "support",
|
||||
@@ -141,7 +142,7 @@
|
||||
"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 que 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.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",
|
||||
@@ -151,7 +152,7 @@
|
||||
"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.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.",
|
||||
@@ -197,9 +198,9 @@
|
||||
"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.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 commençe",
|
||||
"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.",
|
||||
@@ -265,27 +266,27 @@
|
||||
"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": "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.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": "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": "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.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\".",
|
||||
@@ -296,8 +297,8 @@
|
||||
"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.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.",
|
||||
@@ -305,9 +306,9 @@
|
||||
"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.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.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.",
|
||||
@@ -316,14 +317,14 @@
|
||||
"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": "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.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.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.",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Courriel",
|
||||
"notification.preference.help.push": "Pousser",
|
||||
"notification.preference.load.more.courses": "Charger plus de cours"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
370
src/i18n/messages/it_IT.json
Normal file
370
src/i18n/messages/it_IT.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"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.coaching.consent.welcome.header": "Partiamo!",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Saremo qui per te dall'inizio alla fine",
|
||||
"account.settings.coaching.consent.description": "I programmi MicroBachelors prevedono un servizio di coaching con un professionista esperto incentrato sulla tua carriera, istruzione e su come ottenere risultati attraverso la comunicazione individuale. Se sei interessato, fornisci le informazioni richieste di seguito e fai clic su \"Invia\" e il nostro partner di insegnamento si metterà in contatto con te tramite e-mail e/o messaggi sms per aiutarti a procedere. Si applicano Termini e Condizioni.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* I servizi di coaching sono inclusi senza costi aggiuntivi per gli studenti con numeri di telefono statunitensi. Il coaching include messaggi di testo ricorrenti. Potrebbero essere applicate tariffe per messaggi e dati. Invia un messaggio con il testo STOP per disattivare l'offerta.",
|
||||
"account.settings.coaching.consent.accept-coaching": "Iscriviti al coaching",
|
||||
"account.settings.coaching.consent.decline-coaching": "Preferisco non essere contattato con servizi di coaching gratuiti ",
|
||||
"account.settings.coaching.consent.label.name": "Conferma il tuo nome",
|
||||
"account.settings.coaching.consent.label.phone-number": "Immetti il tuo numero di cellulare",
|
||||
"account.settings.coaching.consent.success.header": "Completato correttamente!",
|
||||
"account.settings.coaching.consent.success.message": "Sei iscritto al coaching. Puoi aspettarti un messaggio via e-mail o SMS nei prossimi giorni. ",
|
||||
"account.settings.coaching.consent.success.continue": "Inizia il mio corso",
|
||||
"account.settings.coaching.managed.support": "supporto",
|
||||
"account.settings.coaching.managed.alert": "Il tuo nome è gestito da {managerTitle}. Rivolgiti all'amministratore per assistenza.",
|
||||
"account.settings.field.phone_number": "Numero di telefono",
|
||||
"account.settings.field.phone_number.empty": "Aggiungi un numero di telefono",
|
||||
"account.settings.field.coaching_consent": "Autorizza Coaching",
|
||||
"account.settings.field.coaching_consent.tooltip": "I programmi MicroBachelors includono un servizio di coaching basato su messaggi SMS che ti aiuta ad abbinare le esperienze formative ai tuoi obiettivi di carriera attraverso consigli personali. I servizi di coaching sono inclusi senza costi aggiuntivi e sono disponibili per gli studenti con numeri di telefono cellulare statunitensi. Si applicano le tariffe standard per la messaggistica SMS. Invia in qualsiasi momento un SMSM con scritto ‘STOP’ per disattivare i messaggi.",
|
||||
"account.settings.field.coaching_consent.error": "Per attivare il servizio di coaching è necessario un numero di telefono statunitense valido",
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
370
src/i18n/messages/pt_PT.json
Normal file
370
src/i18n/messages/pt_PT.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"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.coaching.consent.welcome.header": "Vamos começar.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "Estamos aqui para si do princípio ao fim",
|
||||
"account.settings.coaching.consent.description": "Os programas MicroBachelors incluem formação que se concentra na sua carreira, educação, e como alcançará resultados através da comunicação personalizada com um profissional experiente. Se estiver interessado, forneça as informações abaixo e clique em \"Submeter\", e o nosso parceiro de formação ligar-se-á a si através de e-mail e/ou mensagem de texto para o ajudar a seguir em frente. Aplicam-se os termos e condições.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* Os serviços de formação estão incluídos, sem custos adicionais para os alunos com números de telefone dos EUA. A formação inclui mensagens de texto recorrentes. Podem aplicar-se taxas de mensagens e dados. Digite STOP para optar por não participar .",
|
||||
"account.settings.coaching.consent.accept-coaching": "Inscrever-se para a formação",
|
||||
"account.settings.coaching.consent.decline-coaching": "Prefiro não ser contactado com serviços gratuitos de formação",
|
||||
"account.settings.coaching.consent.label.name": "Por favor confirme o seu nome",
|
||||
"account.settings.coaching.consent.label.phone-number": "Introduza o seu número de telemóvel",
|
||||
"account.settings.coaching.consent.success.header": "Sucesso!",
|
||||
"account.settings.coaching.consent.success.message": "Está inscrito como formador. Pode esperar uma mensagem via e-mail ou SMS nos próximos dias.",
|
||||
"account.settings.coaching.consent.success.continue": "Iniciar o meu curso",
|
||||
"account.settings.coaching.managed.support": "suporte",
|
||||
"account.settings.coaching.managed.alert": "O seu nome é gerido por {managerTitle}. Contacte o seu administrador para obter ajuda.",
|
||||
"account.settings.field.phone_number": "Telefone",
|
||||
"account.settings.field.phone_number.empty": "Adicione um número de telefone",
|
||||
"account.settings.field.coaching_consent": "Autorização para formação",
|
||||
"account.settings.field.coaching_consent.tooltip": "Os programas MicroBachelors incluem treino baseado em mensagens de texto que o ajudam a associar experiências educacionais com os seus objectivos de carreira através de conselhos personalizados. Os serviços de formação estão incluídos sem custos adicionais, e estão disponíveis para estudantes com números de telemóvel nos EUA. Aplicam-se as taxas normais de mensagens. Escreva 'STOP' em qualquer altura para optar por não receber mensagens.",
|
||||
"account.settings.field.coaching_consent.error": "É necessário um número de telefone válido nos EUA para optar pela formação",
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -114,6 +114,7 @@
|
||||
"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",
|
||||
@@ -357,5 +358,13 @@
|
||||
"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}"
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "Type",
|
||||
"notification.preference.help.web": "Web",
|
||||
"notification.preference.help.email": "Email",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -1,361 +1,370 @@
|
||||
{
|
||||
"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.",
|
||||
"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": "Let’s get started.",
|
||||
"account.settings.coaching.consent.welcome.subheader": "We're here for you from start to finish",
|
||||
"account.settings.coaching.consent.description": "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.*",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "* 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.",
|
||||
"account.settings.coaching.consent.accept-coaching": "Sign up for coaching",
|
||||
"account.settings.coaching.consent.decline-coaching": "I prefer not to be contacted with free coaching services",
|
||||
"account.settings.coaching.consent.label.name": "Please confirm your name",
|
||||
"account.settings.coaching.consent.label.phone-number": "Enter your mobile number",
|
||||
"account.settings.coaching.consent.success.header": "Success!",
|
||||
"account.settings.coaching.consent.success.message": "You're signed up for coaching. You can expect a message via email or SMS in the coming days.",
|
||||
"account.settings.coaching.consent.success.continue": "Start my course",
|
||||
"account.settings.coaching.managed.support": "support",
|
||||
"account.settings.coaching.managed.alert": "Your name is managed by {managerTitle}. Contact your administrator for help.",
|
||||
"account.settings.field.phone_number": "Phone Number",
|
||||
"account.settings.field.phone_number.empty": "Add a phone number",
|
||||
"account.settings.field.coaching_consent": "Coaching consent",
|
||||
"account.settings.field.coaching_consent.tooltip": "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.",
|
||||
"account.settings.field.coaching_consent.error": "A valid US phone number is required to opt into coaching",
|
||||
"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}"
|
||||
"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": "此姓名已通过照片 ID 验证。",
|
||||
"account.settings.field.name.verified.help.text.verified.proctored": "此名字已通过监考验证。",
|
||||
"account.settings.field.name.verified.help.text.verified.certificate": "此姓名已通过照片 ID 验证,并被选中显示在您的证书和面向公开网页中。",
|
||||
"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.coaching.consent.welcome.header": "让我们开始吧。",
|
||||
"account.settings.coaching.consent.welcome.subheader": "这里全程为您服务",
|
||||
"account.settings.coaching.consent.description": "微型学士项目系统专注于您的职业、教育以及您将如何通过与经验丰富的专业人士的一对一交流取得成果的辅导。如果您有兴趣,请提供以下信息并单击“提交”,我们的讲师/助教将通过电子邮件与您联系,帮助您学习。条款与条件适用。",
|
||||
"account.settings.coaching.consent.text-messaging.disclaimer": "拥有美国手机号码的用户无需支付辅导服务。辅导包括短信。您可能需要支付短信和数据使用费。发送stop终止服务。",
|
||||
"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": "微型学士项目基于你的情况辅导,通过一对一的建议帮助您将教育经历与您的职业目标相结合。提供学习计划。辅导项目对于持有美国移动号码的学生是免费的,只收取标准短信费用。发送“stop”停止接收信息。",
|
||||
"account.settings.field.coaching_consent.error": "*需要提供有效的美国号码接收辅导服务",
|
||||
"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 应用, 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": "您选择了“删除我的帐户”。删除您的帐户和个人数据是永久性的,无法撤消。 {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.modal.after.button": "关闭",
|
||||
"account.settings.delete.account.text.3.edX": "您还可能无法访问经过验证的证书和其他项目认证,例如微型硕士证书。在继续删除之前,您可以复制这些文件作为记录。 {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": "您访问的地址不存在或有误。请检查URL后重新尝试访问。",
|
||||
"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": "以{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": "支持",
|
||||
"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": "如果是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": "要在 Internet Explorer 中启用摄像头访问:",
|
||||
"id.verification.camera.access.failure.temporary.ie11.step1": "通过导航到 Windows 设置〉控制面板〉Flash Player 打开 Flash Player 设置管理器。",
|
||||
"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": "打开火狐游览器。",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step2": "在 URL 栏中输入“关于:喜好”。",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step3": "选择“隐私和安全”选项卡,然后导航到“权限”部分。",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step4": "在“相机”旁边,选择“设置...”按钮。",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step5": "在搜索栏中,输入“网址”。",
|
||||
"id.verification.camera.access.failure.temporary.firefox.step6": "在“网址”的状态列中,从下拉列表中选择“允许”。",
|
||||
"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": "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.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 保持在相对于相机的位置怎么办?",
|
||||
"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": "请上传您的身份证照片。确保整个 ID 在框架内且光线充足。文件大小必须小于 10 MB。支持的格式:",
|
||||
"id.verification.id.photo.instructions.upload.error.invalidFileType": "您选择的文件不是受支持的图像类型。请从以下格式中选择:",
|
||||
"id.verification.id.photo.instructions.upload.error.fileTooLarge": "您选择的文件太大。请使用小于 10MB 的文件重试。",
|
||||
"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} 管理。如果您照片 ID 上的姓名与您帐户上的姓名不符,请在完成照片验证过程之前联系您的 {profileDataManager} 管理员或 {support} 寻求帮助。",
|
||||
"id.verification.requirements.card.device.text": "你需要一个有摄像头的设备。如果您收到访问相机的浏览器提示,请确保单击 {allow}。",
|
||||
"id.verification.account.name.summary.alert": "您的帐户设置由 {managerTitle} 管理。如果您照片 ID 上的姓名与您帐户上的姓名不符,请联系您的 {profileDataManager} 管理员或 {support} 寻求帮助。",
|
||||
"idv.submission.alert.error": "我们在尝试提交身份验证时遇到技术错误。这可能是暂时性问题,因此请过几分钟再试。如果问题仍然存在,请前往 {support_link} 寻求帮助。",
|
||||
"id.verification.account.name.edit": "编辑 {sr}",
|
||||
"notification.preference.heading": "通知",
|
||||
"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}\n newPost {New Post}\n newComment {New Comment}\n newResponse {New Response}\n newCommentOnPost {New Comment On Post}\n newResponseOnComment {New Response On Comment}\n newAssignment {New Assignment}\n newGrade {New Grade}\n other {{text}}\n }",
|
||||
"notification.preference.help.type": "类型",
|
||||
"notification.preference.help.web": "网页",
|
||||
"notification.preference.help.email": "邮箱",
|
||||
"notification.preference.help.push": "Push",
|
||||
"notification.preference.load.more.courses": "Load more courses"
|
||||
}
|
||||
@@ -20,31 +20,31 @@ jest.mock('../VerifiedNameContext', () => {
|
||||
VerifiedNameContextProvider: jest.fn(({ children }) => children),
|
||||
};
|
||||
});
|
||||
jest.mock('../panels/ReviewRequirementsPanel', () => function () {
|
||||
jest.mock('../panels/ReviewRequirementsPanel', () => function ReviewRequirementsPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/RequestCameraAccessPanel', () => function () {
|
||||
jest.mock('../panels/RequestCameraAccessPanel', () => function RequestCameraAccessPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/PortraitPhotoContextPanel', () => function () {
|
||||
jest.mock('../panels/PortraitPhotoContextPanel', () => function PortraitPhotoContextPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/TakePortraitPhotoPanel', () => function () {
|
||||
jest.mock('../panels/TakePortraitPhotoPanel', () => function TakePortraitPhotoPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/IdContextPanel', () => function () {
|
||||
jest.mock('../panels/IdContextPanel', () => function IdContextPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/GetNameIdPanel', () => function () {
|
||||
jest.mock('../panels/GetNameIdPanel', () => function GetNameIdPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/TakeIdPhotoPanel', () => function () {
|
||||
jest.mock('../panels/TakeIdPhotoPanel', () => function TakeIdPhotoPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/SummaryPanel', () => function () {
|
||||
jest.mock('../panels/SummaryPanel', () => function SummaryPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
jest.mock('../panels/SubmittedPanel', () => function () {
|
||||
jest.mock('../panels/SubmittedPanel', () => function SubmittedPanelMock() {
|
||||
return <></>;
|
||||
});
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ jest.mock('@edx/frontend-platform/analytics', () => ({
|
||||
sendTrackEvent: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('../../Camera', () => function () {
|
||||
jest.mock('../../Camera', () => function CameraMock() {
|
||||
return <></>;
|
||||
});
|
||||
|
||||
|
||||
@@ -10,17 +10,19 @@ import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { Route, Switch } from 'react-router-dom';
|
||||
|
||||
import Header, { messages as headerMessages } from '@edx/frontend-component-header';
|
||||
import Footer, { messages as footerMessages } from '@edx/frontend-component-footer';
|
||||
import Header from '@edx/frontend-component-header';
|
||||
import Footer from '@edx/frontend-component-footer';
|
||||
|
||||
import configureStore from './data/configureStore';
|
||||
import AccountSettingsPage, { NotFoundPage } from './account-settings';
|
||||
import IdVerificationPage from './id-verification';
|
||||
import CoachingConsent from './account-settings/coaching/CoachingConsent';
|
||||
import appMessages from './i18n';
|
||||
import messages from './i18n';
|
||||
|
||||
import './index.scss';
|
||||
import Head from './head/Head';
|
||||
import NotificationCourses from './notification-preferences/NotificationCourses';
|
||||
import NotificationPreferences from './notification-preferences/NotificationPreferences';
|
||||
|
||||
subscribe(APP_READY, () => {
|
||||
ReactDOM.render(
|
||||
@@ -32,6 +34,8 @@ subscribe(APP_READY, () => {
|
||||
<Header />
|
||||
<main className="flex-grow-1">
|
||||
<Switch>
|
||||
<Route path="/notifications/:courseId" component={NotificationPreferences} />
|
||||
<Route path="/notifications" component={NotificationCourses} />
|
||||
<Route path="/id-verification" component={IdVerificationPage} />
|
||||
<Route exact path="/" component={AccountSettingsPage} />
|
||||
<Route path="/notfound" component={NotFoundPage} />
|
||||
@@ -51,11 +55,7 @@ subscribe(APP_INIT_ERROR, (error) => {
|
||||
});
|
||||
|
||||
initialize({
|
||||
messages: [
|
||||
appMessages,
|
||||
headerMessages,
|
||||
footerMessages,
|
||||
],
|
||||
messages,
|
||||
requireAuthenticatedUser: true,
|
||||
hydrateAuthenticatedUser: true,
|
||||
handlers: {
|
||||
@@ -68,6 +68,7 @@ initialize({
|
||||
ENABLE_COPPA_COMPLIANCE: (process.env.ENABLE_COPPA_COMPLIANCE || false),
|
||||
ENABLE_DOB_UPDATE: (process.env.ENABLE_DOB_UPDATE || false),
|
||||
MARKETING_EMAILS_OPT_IN: (process.env.MARKETING_EMAILS_OPT_IN || false),
|
||||
PASSWORD_RESET_SUPPORT_LINK: process.env.PASSWORD_RESET_SUPPORT_LINK,
|
||||
}, 'App loadConfig override handler');
|
||||
},
|
||||
},
|
||||
|
||||
@@ -62,3 +62,27 @@ $fa-font-path: "~font-awesome/fonts";
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.notification-heading {
|
||||
line-height: 36px;
|
||||
font-weight: 700;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.notification-course-title {
|
||||
line-height: 28px;
|
||||
font-weight: 700;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.px-2\.25 {
|
||||
padding-left: 0.625rem;
|
||||
}
|
||||
|
||||
.notification-help-text {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 28px;
|
||||
height: 28px;
|
||||
color: #707070;
|
||||
}
|
||||
|
||||
83
src/notification-preferences/NotificationCourses.jsx
Normal file
83
src/notification-preferences/NotificationCourses.jsx
Normal file
@@ -0,0 +1,83 @@
|
||||
import React, { useEffect, useCallback } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
||||
import {
|
||||
Container, Icon, Spinner, Button,
|
||||
} from '@edx/paragon';
|
||||
import { ArrowForwardIos } from '@edx/paragon/icons';
|
||||
import { fetchCourseList } from './data/thunks';
|
||||
import { selectCourseListStatus, selectCourseList, selectPagination } from './data/selectors';
|
||||
import {
|
||||
IDLE_STATUS,
|
||||
LOADING_STATUS,
|
||||
SUCCESS_STATUS,
|
||||
} from '../constants';
|
||||
import { messages } from './messages';
|
||||
import { NotFoundPage } from '../account-settings';
|
||||
|
||||
const NotificationCourses = ({ intl }) => {
|
||||
const dispatch = useDispatch();
|
||||
const coursesList = useSelector(selectCourseList());
|
||||
const courseListStatus = useSelector(selectCourseListStatus());
|
||||
const { hasMore, currentPage } = useSelector(selectPagination());
|
||||
|
||||
const loadMore = useCallback((page = 1, pageSize = 10) => {
|
||||
dispatch(fetchCourseList(page, pageSize));
|
||||
}, [dispatch]);
|
||||
|
||||
useEffect(() => {
|
||||
if (courseListStatus === IDLE_STATUS) { loadMore(); }
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
if (courseListStatus === SUCCESS_STATUS && coursesList.length === 0) {
|
||||
return <NotFoundPage />;
|
||||
}
|
||||
|
||||
return (
|
||||
<Container size="md">
|
||||
<h2 className="notification-heading mt-6 mb-5.5">
|
||||
{intl.formatMessage(messages.notificationHeading)}
|
||||
</h2>
|
||||
<div data-testid="courses-list">
|
||||
{coursesList.map(course => (
|
||||
<Link
|
||||
key={course.id}
|
||||
to={`/notifications/${course.id}`}
|
||||
>
|
||||
<div className="mb-4 d-flex text-gray-700">
|
||||
<span className="ml-0 mr-auto">
|
||||
{course.name}
|
||||
</span>
|
||||
<span className="ml-auto mr-0">
|
||||
<Icon src={ArrowForwardIos} />
|
||||
</span>
|
||||
</div>
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
{courseListStatus === LOADING_STATUS ? (
|
||||
<div className="d-flex">
|
||||
<Spinner
|
||||
variant="primary"
|
||||
animation="border"
|
||||
className="mx-auto my-auto"
|
||||
size="lg"
|
||||
data-testid="loading-spinner"
|
||||
/>
|
||||
</div>
|
||||
) : hasMore && (
|
||||
<Button variant="primary" className="w-100 bg-primary-500" onClick={() => loadMore(currentPage + 1)}>
|
||||
{intl.formatMessage(messages.loadMoreCourses)}
|
||||
</Button>
|
||||
)}
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
NotificationCourses.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
};
|
||||
|
||||
export default injectIntl(NotificationCourses);
|
||||
94
src/notification-preferences/NotificationCourses.test.jsx
Normal file
94
src/notification-preferences/NotificationCourses.test.jsx
Normal file
@@ -0,0 +1,94 @@
|
||||
/* eslint-disable no-import-assign */
|
||||
import { Provider } from 'react-redux';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import NotificationCourses from './NotificationCourses';
|
||||
import { defaultState } from './data/reducers';
|
||||
import { LOADING_STATUS, SUCCESS_STATUS } from '../constants';
|
||||
|
||||
const mockStore = configureStore();
|
||||
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
|
||||
const courseList = [
|
||||
{ id: 'course-id-1', name: 'Course Name 1' },
|
||||
{ id: 'course-id-2', name: 'Course Name 2' },
|
||||
{ id: 'course-id-3', name: 'Course Name 3' },
|
||||
];
|
||||
|
||||
const setupStore = (override = {}) => {
|
||||
const storeState = defaultState;
|
||||
storeState.courses = {
|
||||
...storeState.courses,
|
||||
...override,
|
||||
};
|
||||
const store = mockStore({
|
||||
notificationPreferences: storeState,
|
||||
});
|
||||
return store;
|
||||
};
|
||||
|
||||
const renderComponent = (store = {}) => (
|
||||
render(
|
||||
<Router>
|
||||
<IntlProvider locale="en">
|
||||
<Provider store={store}>
|
||||
<NotificationCourses />
|
||||
</Provider>
|
||||
</IntlProvider>
|
||||
</Router>,
|
||||
)
|
||||
);
|
||||
|
||||
describe('Notification Courses', () => {
|
||||
let store;
|
||||
beforeEach(() => {
|
||||
store = setupStore({
|
||||
courses: courseList,
|
||||
status: SUCCESS_STATUS,
|
||||
pagination: {
|
||||
count: 3,
|
||||
currentPage: 1,
|
||||
hasMore: false,
|
||||
totalPages: 1,
|
||||
},
|
||||
});
|
||||
|
||||
auth.getAuthenticatedHttpClient = jest.fn(() => ({
|
||||
patch: async () => ({
|
||||
data: { status: 200 },
|
||||
catch: () => {},
|
||||
}),
|
||||
}));
|
||||
auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3 }));
|
||||
});
|
||||
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
it('tests if all courses are available', async () => {
|
||||
await renderComponent(store);
|
||||
expect(screen.queryByTestId('courses-list').children).toHaveLength(3);
|
||||
});
|
||||
|
||||
it('show spinner if api call is in progress', async () => {
|
||||
store = setupStore({ status: LOADING_STATUS });
|
||||
await renderComponent(store);
|
||||
expect(screen.queryByTestId('loading-spinner')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('show not found page if course list is empty', async () => {
|
||||
store = setupStore({ status: SUCCESS_STATUS, courses: [] });
|
||||
await renderComponent(store);
|
||||
expect(screen.queryByTestId('not-found-page')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('show load more courses button when hasMore True', async () => {
|
||||
store = setupStore({ status: SUCCESS_STATUS, pagination: { ...store.pagination, hasMore: true, totalPages: 2 } });
|
||||
await renderComponent(store);
|
||||
|
||||
expect(screen.queryByText('Load more courses')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
78
src/notification-preferences/NotificationPreferenceApp.jsx
Normal file
78
src/notification-preferences/NotificationPreferenceApp.jsx
Normal file
@@ -0,0 +1,78 @@
|
||||
import React, { useCallback, useMemo } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||
import { Collapsible } from '@edx/paragon';
|
||||
import { messages } from './messages';
|
||||
import ToggleSwitch from './ToggleSwitch';
|
||||
import {
|
||||
selectPreferenceAppToggleValue,
|
||||
selectPreferencesOfApp,
|
||||
selectSelectedCourseId,
|
||||
} from './data/selectors';
|
||||
import NotificationPreferenceRow from './NotificationPreferenceRow';
|
||||
import { updateAppPreferenceToggle } from './data/thunks';
|
||||
|
||||
const NotificationPreferenceApp = ({ appId }) => {
|
||||
const dispatch = useDispatch();
|
||||
const intl = useIntl();
|
||||
const courseId = useSelector(selectSelectedCourseId());
|
||||
const appPreferences = useSelector(selectPreferencesOfApp(appId));
|
||||
const appToggle = useSelector(selectPreferenceAppToggleValue(appId));
|
||||
|
||||
const preferences = useMemo(() => (
|
||||
appPreferences.map(preference => (
|
||||
<NotificationPreferenceRow
|
||||
key={preference.id}
|
||||
appId={appId}
|
||||
preferenceName={preference.id}
|
||||
/>
|
||||
))), [appId, appPreferences]);
|
||||
|
||||
const onChangeAppSettings = useCallback((event) => {
|
||||
dispatch(updateAppPreferenceToggle(courseId, appId, event.target.checked));
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [appId]);
|
||||
|
||||
if (!courseId) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
<Collapsible.Advanced open={appToggle} data-testid="notification-app">
|
||||
<Collapsible.Trigger>
|
||||
<div className="d-flex">
|
||||
<span className="ml-0 mr-auto">
|
||||
{intl.formatMessage(messages.notificationAppTitle, { key: appId })}
|
||||
</span>
|
||||
<span id={`${appId}-app-toggle`} className="ml-auto mr-0">
|
||||
<ToggleSwitch
|
||||
name={appId}
|
||||
value={appToggle}
|
||||
onChange={onChangeAppSettings}
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<hr />
|
||||
</Collapsible.Trigger>
|
||||
<Collapsible.Body>
|
||||
<div className="d-flex flex-row notification-help-text">
|
||||
<span className="col-8 px-0">{intl.formatMessage(messages.notificationHelpType)}</span>
|
||||
<span className="d-flex col-4 px-0">
|
||||
<span className="ml-0 mr-auto">{intl.formatMessage(messages.notificationHelpWeb)}</span>
|
||||
<span className="mx-auto">{intl.formatMessage(messages.notificationHelpEmail)}</span>
|
||||
<span className="ml-auto mr-0 pr-2.5">{intl.formatMessage(messages.notificationHelpPush)}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div className="mt-3 pb-5">
|
||||
{ preferences }
|
||||
</div>
|
||||
</Collapsible.Body>
|
||||
</Collapsible.Advanced>
|
||||
);
|
||||
};
|
||||
|
||||
NotificationPreferenceApp.propTypes = {
|
||||
appId: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default React.memo(NotificationPreferenceApp);
|
||||
93
src/notification-preferences/NotificationPreferenceRow.jsx
Normal file
93
src/notification-preferences/NotificationPreferenceRow.jsx
Normal file
@@ -0,0 +1,93 @@
|
||||
import React, { useCallback } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classNames from 'classnames';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||
import { Icon, OverlayTrigger, Tooltip } from '@edx/paragon';
|
||||
import { InfoOutline } from '@edx/paragon/icons';
|
||||
import { messages } from './messages';
|
||||
import ToggleSwitch from './ToggleSwitch';
|
||||
import {
|
||||
selectPreference,
|
||||
selectPreferenceNonEditableChannels,
|
||||
selectSelectedCourseId,
|
||||
} from './data/selectors';
|
||||
import { updatePreferenceToggle } from './data/thunks';
|
||||
|
||||
const NotificationPreferenceRow = ({ appId, preferenceName }) => {
|
||||
const dispatch = useDispatch();
|
||||
const intl = useIntl();
|
||||
const courseId = useSelector(selectSelectedCourseId());
|
||||
const preference = useSelector(selectPreference(appId, preferenceName));
|
||||
const nonEditable = useSelector(selectPreferenceNonEditableChannels(appId, preferenceName));
|
||||
|
||||
const onToggle = useCallback((event) => {
|
||||
const {
|
||||
checked,
|
||||
name: notificationChannel,
|
||||
} = event.target;
|
||||
dispatch(updatePreferenceToggle(
|
||||
courseId,
|
||||
appId,
|
||||
preferenceName,
|
||||
notificationChannel,
|
||||
checked,
|
||||
));
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [appId, preferenceName]);
|
||||
|
||||
const tooltipId = `${preferenceName}-tooltip`;
|
||||
return (
|
||||
<div className="d-flex flex-row mb-3" data-testid="notification-preference">
|
||||
<span className="d-flex align-items-center col-8 px-0">
|
||||
{intl.formatMessage(messages.notificationTitle, { text: preferenceName })}
|
||||
{
|
||||
preference.info !== '' && (
|
||||
<OverlayTrigger
|
||||
id={tooltipId}
|
||||
className="d-inline"
|
||||
placement="top"
|
||||
overlay={(
|
||||
<Tooltip id={tooltipId}>
|
||||
{preference.info}
|
||||
</Tooltip>
|
||||
)}
|
||||
>
|
||||
<span className="ml-2">
|
||||
<Icon src={InfoOutline} />
|
||||
</span>
|
||||
</OverlayTrigger>
|
||||
)
|
||||
}
|
||||
</span>
|
||||
<span className="d-flex col-4 px-0">
|
||||
{
|
||||
['web', 'email', 'push'].map((channel) => (
|
||||
<span
|
||||
id={`${preferenceName}-${channel}`}
|
||||
className={classNames(
|
||||
{ 'ml-0 mr-auto': channel === 'web' },
|
||||
{ 'mx-auto': channel === 'email' },
|
||||
{ 'ml-auto mr-0': channel === 'push' },
|
||||
)}
|
||||
>
|
||||
<ToggleSwitch
|
||||
name={channel}
|
||||
value={preference[channel]}
|
||||
onChange={onToggle}
|
||||
disabled={nonEditable.includes(channel)}
|
||||
/>
|
||||
</span>
|
||||
))
|
||||
}
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
NotificationPreferenceRow.propTypes = {
|
||||
appId: PropTypes.string.isRequired,
|
||||
preferenceName: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default React.memo(NotificationPreferenceRow);
|
||||
89
src/notification-preferences/NotificationPreferences.jsx
Normal file
89
src/notification-preferences/NotificationPreferences.jsx
Normal file
@@ -0,0 +1,89 @@
|
||||
import React, { useEffect, useMemo } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { useParams } from 'react-router';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { useIntl } from '@edx/frontend-platform/i18n';
|
||||
import { Container, Icon, Spinner } from '@edx/paragon';
|
||||
import { ArrowBack } from '@edx/paragon/icons';
|
||||
import {
|
||||
selectCourseListStatus,
|
||||
selectCourse,
|
||||
selectPreferenceAppsId,
|
||||
selectNotificationPreferencesStatus,
|
||||
selectCourseList,
|
||||
} from './data/selectors';
|
||||
import { fetchCourseList, fetchCourseNotificationPreferences } from './data/thunks';
|
||||
import { messages } from './messages';
|
||||
import NotificationPreferenceApp from './NotificationPreferenceApp';
|
||||
import {
|
||||
FAILURE_STATUS,
|
||||
IDLE_STATUS,
|
||||
LOADING_STATUS,
|
||||
SUCCESS_STATUS,
|
||||
} from '../constants';
|
||||
import { NotFoundPage } from '../account-settings';
|
||||
|
||||
const NotificationPreferences = () => {
|
||||
const { courseId } = useParams();
|
||||
const dispatch = useDispatch();
|
||||
const intl = useIntl();
|
||||
const courseStatus = useSelector(selectCourseListStatus());
|
||||
const coursesList = useSelector(selectCourseList());
|
||||
const course = useSelector(selectCourse(courseId));
|
||||
const notificationStatus = useSelector(selectNotificationPreferencesStatus());
|
||||
const preferenceAppsIds = useSelector(selectPreferenceAppsId());
|
||||
const isLoading = notificationStatus === LOADING_STATUS || courseStatus === LOADING_STATUS;
|
||||
|
||||
const preferencesList = useMemo(() => (
|
||||
preferenceAppsIds.map(appId => (
|
||||
<NotificationPreferenceApp appId={appId} key={appId} />
|
||||
))
|
||||
), [preferenceAppsIds]);
|
||||
|
||||
useEffect(() => {
|
||||
if ([IDLE_STATUS, FAILURE_STATUS].includes(courseStatus)) {
|
||||
dispatch(fetchCourseList());
|
||||
}
|
||||
dispatch(fetchCourseNotificationPreferences(courseId));
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [courseId]);
|
||||
|
||||
if (
|
||||
(courseStatus === SUCCESS_STATUS && coursesList.length === 0)
|
||||
|| (notificationStatus === FAILURE_STATUS && coursesList.length !== 0)
|
||||
) {
|
||||
return <NotFoundPage />;
|
||||
}
|
||||
|
||||
return (
|
||||
<Container size="md">
|
||||
<h2 className="notification-heading mt-6 mb-5.5">
|
||||
{intl.formatMessage(messages.notificationHeading)}
|
||||
</h2>
|
||||
<div className="h-100">
|
||||
<div className="d-flex mb-4">
|
||||
<Link to="/notifications">
|
||||
<Icon className="d-inline-block align-bottom ml-1" src={ArrowBack} />
|
||||
</Link>
|
||||
<span className="notification-course-title ml-auto mr-auto">
|
||||
{course?.name}
|
||||
</span>
|
||||
</div>
|
||||
{preferencesList}
|
||||
{isLoading && (
|
||||
<div className="d-flex">
|
||||
<Spinner
|
||||
variant="primary"
|
||||
animation="border"
|
||||
className="mx-auto my-auto"
|
||||
size="lg"
|
||||
data-testid="loading-spinner"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
export default NotificationPreferences;
|
||||
151
src/notification-preferences/NotificationPreferences.test.jsx
Normal file
151
src/notification-preferences/NotificationPreferences.test.jsx
Normal file
@@ -0,0 +1,151 @@
|
||||
/* eslint-disable no-import-assign */
|
||||
import { Provider } from 'react-redux';
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import { createMemoryHistory } from 'history';
|
||||
import { fireEvent, render, screen } from '@testing-library/react';
|
||||
import * as auth from '@edx/frontend-platform/auth';
|
||||
import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
import NotificationPreferences from './NotificationPreferences';
|
||||
import { defaultState } from './data/reducers';
|
||||
import { FAILURE_STATUS, LOADING_STATUS, SUCCESS_STATUS } from '../constants';
|
||||
|
||||
const courseId = 'selected-course-id';
|
||||
|
||||
const mockStore = configureStore();
|
||||
|
||||
const mockDispatch = jest.fn();
|
||||
jest.mock('react-redux', () => ({
|
||||
...jest.requireActual('react-redux'),
|
||||
useDispatch: () => mockDispatch,
|
||||
}));
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
|
||||
const defaultPreferences = {
|
||||
status: SUCCESS_STATUS,
|
||||
selectedCourse: courseId,
|
||||
apps: [
|
||||
{ id: 'discussion', enabled: true },
|
||||
{ id: 'coursework', enabled: true },
|
||||
],
|
||||
preferences: [
|
||||
{
|
||||
id: 'newPost',
|
||||
appId: 'discussion',
|
||||
web: false,
|
||||
push: false,
|
||||
mobile: false,
|
||||
},
|
||||
{
|
||||
id: 'newComment',
|
||||
appId: 'discussion',
|
||||
web: false,
|
||||
push: false,
|
||||
mobile: false,
|
||||
},
|
||||
{
|
||||
id: 'newAssignment',
|
||||
appId: 'coursework',
|
||||
web: false,
|
||||
push: false,
|
||||
mobile: false,
|
||||
},
|
||||
{
|
||||
id: 'newGrade',
|
||||
appId: 'coursework',
|
||||
web: false,
|
||||
push: false,
|
||||
mobile: false,
|
||||
},
|
||||
],
|
||||
nonEditable: {},
|
||||
};
|
||||
|
||||
const setupStore = (override = {}) => {
|
||||
const storeState = defaultState;
|
||||
storeState.courses = {
|
||||
status: SUCCESS_STATUS,
|
||||
courses: [
|
||||
{ id: 'selected-course-id', name: 'Selected Course' },
|
||||
],
|
||||
};
|
||||
storeState.preferences = {
|
||||
...storeState.preferences,
|
||||
...override,
|
||||
};
|
||||
const store = mockStore({
|
||||
notificationPreferences: storeState,
|
||||
});
|
||||
return store;
|
||||
};
|
||||
|
||||
const renderComponent = (store = {}) => {
|
||||
const history = createMemoryHistory();
|
||||
history.push(`/notifications/${courseId}`);
|
||||
return render(
|
||||
<Router history={history}>
|
||||
<IntlProvider locale="en">
|
||||
<Provider store={store}>
|
||||
<NotificationPreferences />
|
||||
</Provider>
|
||||
</IntlProvider>
|
||||
</Router>,
|
||||
);
|
||||
};
|
||||
|
||||
describe('Notification Preferences', () => {
|
||||
let store;
|
||||
beforeEach(() => {
|
||||
store = setupStore({
|
||||
...defaultPreferences,
|
||||
status: SUCCESS_STATUS,
|
||||
selectedCourse: courseId,
|
||||
});
|
||||
|
||||
auth.getAuthenticatedHttpClient = jest.fn(() => ({
|
||||
patch: async () => ({
|
||||
data: { status: 200 },
|
||||
catch: () => {},
|
||||
}),
|
||||
}));
|
||||
auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3 }));
|
||||
});
|
||||
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
it('tests if all notification apps are listed', async () => {
|
||||
await renderComponent(store);
|
||||
expect(screen.queryAllByTestId('notification-app')).toHaveLength(2);
|
||||
});
|
||||
it('show spinner if api call is in progress', async () => {
|
||||
store = setupStore({ status: LOADING_STATUS });
|
||||
await renderComponent(store);
|
||||
expect(screen.queryByTestId('loading-spinner')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('tests if all notification preferences are listed', async () => {
|
||||
await renderComponent(store);
|
||||
expect(screen.queryAllByTestId('notification-preference')).toHaveLength(4);
|
||||
});
|
||||
|
||||
it('update group on click', async () => {
|
||||
const wrapper = await renderComponent(store);
|
||||
const element = wrapper.container.querySelector('#discussion-app-toggle');
|
||||
await fireEvent.click(element);
|
||||
expect(mockDispatch).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('update preference on click', async () => {
|
||||
const wrapper = await renderComponent(store);
|
||||
const element = wrapper.container.querySelector('#newPost-web');
|
||||
expect(element).not.toBeChecked();
|
||||
await fireEvent.click(element);
|
||||
expect(mockDispatch).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('show not found page if invalid course id is entered in url', async () => {
|
||||
store = setupStore({ status: FAILURE_STATUS, selectedCourse: 'invalid-course-id' });
|
||||
await renderComponent(store);
|
||||
expect(screen.queryByTestId('not-found-page')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
31
src/notification-preferences/ToggleSwitch.jsx
Normal file
31
src/notification-preferences/ToggleSwitch.jsx
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Form } from '@edx/paragon';
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
const ToggleSwitch = ({
|
||||
name,
|
||||
value,
|
||||
disabled,
|
||||
onChange,
|
||||
}) => (
|
||||
<Form.Switch
|
||||
name={name}
|
||||
checked={value}
|
||||
disabled={disabled}
|
||||
onChange={onChange}
|
||||
/>
|
||||
);
|
||||
|
||||
ToggleSwitch.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
value: PropTypes.bool.isRequired,
|
||||
disabled: PropTypes.bool,
|
||||
onChange: PropTypes.func,
|
||||
};
|
||||
|
||||
ToggleSwitch.defaultProps = {
|
||||
onChange: () => null,
|
||||
disabled: false,
|
||||
};
|
||||
|
||||
export default React.memo(ToggleSwitch);
|
||||
58
src/notification-preferences/data/actions.js
Normal file
58
src/notification-preferences/data/actions.js
Normal file
@@ -0,0 +1,58 @@
|
||||
export const Actions = {
|
||||
FETCHED_PREFERENCES: 'fetchedPreferences',
|
||||
FETCHING_PREFERENCES: 'fetchingPreferences',
|
||||
FAILED_PREFERENCES: 'failedPreferences',
|
||||
FETCHING_COURSE_LIST: 'fetchingCourseList',
|
||||
FETCHED_COURSE_LIST: 'fetchedCourseList',
|
||||
FAILED_COURSE_LIST: 'failedCourseList',
|
||||
UPDATE_SELECTED_COURSE: 'updateSelectedCourse',
|
||||
UPDATE_PREFERENCE: 'updatePreference',
|
||||
UPDATE_APP_PREFERENCE: 'updateAppValue',
|
||||
};
|
||||
|
||||
export const fetchNotificationPreferenceSuccess = (courseId, payload) => dispatch => (
|
||||
dispatch({ type: Actions.FETCHED_PREFERENCES, courseId, payload })
|
||||
);
|
||||
|
||||
export const fetchNotificationPreferenceFetching = () => dispatch => (
|
||||
dispatch({ type: Actions.FETCHING_PREFERENCES })
|
||||
);
|
||||
|
||||
export const fetchNotificationPreferenceFailed = () => dispatch => (
|
||||
dispatch({ type: Actions.FAILED_PREFERENCES })
|
||||
);
|
||||
|
||||
export const fetchCourseListSuccess = payload => dispatch => (
|
||||
dispatch({ type: Actions.FETCHED_COURSE_LIST, payload })
|
||||
);
|
||||
|
||||
export const fetchCourseListFetching = () => dispatch => (
|
||||
dispatch({ type: Actions.FETCHING_COURSE_LIST })
|
||||
);
|
||||
|
||||
export const fetchCourseListFailed = () => dispatch => (
|
||||
dispatch({ type: Actions.FAILED_COURSE_LIST })
|
||||
);
|
||||
|
||||
export const updateSelectedCourse = courseId => dispatch => (
|
||||
dispatch({ type: Actions.UPDATE_SELECTED_COURSE, courseId })
|
||||
);
|
||||
|
||||
export const updatePreferenceValue = (appId, preferenceName, notificationChannel, value) => dispatch => (
|
||||
dispatch({
|
||||
type: Actions.UPDATE_PREFERENCE,
|
||||
appId,
|
||||
preferenceName,
|
||||
notificationChannel,
|
||||
value,
|
||||
})
|
||||
);
|
||||
|
||||
export const updateAppToggle = (courseId, appId, value) => dispatch => (
|
||||
dispatch({
|
||||
type: Actions.UPDATE_APP_PREFERENCE,
|
||||
courseId,
|
||||
appId,
|
||||
value,
|
||||
})
|
||||
);
|
||||
124
src/notification-preferences/data/reducers.js
Normal file
124
src/notification-preferences/data/reducers.js
Normal file
@@ -0,0 +1,124 @@
|
||||
import { Actions } from './actions';
|
||||
import {
|
||||
IDLE_STATUS,
|
||||
LOADING_STATUS,
|
||||
SUCCESS_STATUS,
|
||||
FAILURE_STATUS,
|
||||
} from '../../constants';
|
||||
|
||||
export const defaultState = {
|
||||
showPreferences: false,
|
||||
courses: {
|
||||
status: IDLE_STATUS,
|
||||
courses: [],
|
||||
pagination: {},
|
||||
},
|
||||
preferences: {
|
||||
status: IDLE_STATUS,
|
||||
selectedCourse: null,
|
||||
preferences: [],
|
||||
apps: [],
|
||||
nonEditable: {},
|
||||
},
|
||||
};
|
||||
|
||||
const notificationPreferencesReducer = (state = defaultState, action = {}) => {
|
||||
const {
|
||||
courseId, appId, notificationChannel, preferenceName, value,
|
||||
} = action;
|
||||
switch (action.type) {
|
||||
case Actions.FETCHING_COURSE_LIST:
|
||||
return {
|
||||
...state,
|
||||
courses: {
|
||||
...state.courses,
|
||||
status: LOADING_STATUS,
|
||||
},
|
||||
};
|
||||
case Actions.FETCHED_COURSE_LIST:
|
||||
return {
|
||||
...state,
|
||||
courses: {
|
||||
status: SUCCESS_STATUS,
|
||||
courses: [...state.courses.courses, ...action.payload.courseList],
|
||||
pagination: action.payload.pagination,
|
||||
},
|
||||
showPreferences: action.payload.showPreferences,
|
||||
};
|
||||
case Actions.FAILED_COURSE_LIST:
|
||||
return {
|
||||
...state,
|
||||
courses: {
|
||||
...state.courses,
|
||||
status: FAILURE_STATUS,
|
||||
},
|
||||
};
|
||||
case Actions.FETCHING_PREFERENCES:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
status: LOADING_STATUS,
|
||||
preferences: [],
|
||||
apps: [],
|
||||
nonEditable: {},
|
||||
},
|
||||
};
|
||||
case Actions.FETCHED_PREFERENCES:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
status: SUCCESS_STATUS,
|
||||
...action.payload,
|
||||
},
|
||||
};
|
||||
case Actions.FAILED_PREFERENCES:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
status: FAILURE_STATUS,
|
||||
preferences: [],
|
||||
apps: [],
|
||||
nonEditable: {},
|
||||
},
|
||||
};
|
||||
case Actions.UPDATE_SELECTED_COURSE:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
selectedCourse: courseId,
|
||||
},
|
||||
};
|
||||
case Actions.UPDATE_PREFERENCE:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
preferences: state.preferences.preferences.map((preference) => (
|
||||
preference.id === preferenceName
|
||||
? { ...preference, [notificationChannel]: value }
|
||||
: preference
|
||||
)),
|
||||
},
|
||||
};
|
||||
case Actions.UPDATE_APP_PREFERENCE:
|
||||
return {
|
||||
...state,
|
||||
preferences: {
|
||||
...state.preferences,
|
||||
apps: state.preferences.apps.map(app => (
|
||||
app.id === appId
|
||||
? { ...app, enabled: value }
|
||||
: app
|
||||
)),
|
||||
},
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
||||
|
||||
export default notificationPreferencesReducer;
|
||||
138
src/notification-preferences/data/reducers.test.js
Normal file
138
src/notification-preferences/data/reducers.test.js
Normal file
@@ -0,0 +1,138 @@
|
||||
// eslint-disable-next-line import/no-named-default
|
||||
import { default as reducer } from './reducers';
|
||||
import { Actions } from './actions';
|
||||
import {
|
||||
FAILURE_STATUS,
|
||||
LOADING_STATUS,
|
||||
SUCCESS_STATUS,
|
||||
} from '../../constants';
|
||||
|
||||
describe('notification-preferences reducer', () => {
|
||||
let state = null;
|
||||
const selectedCourseId = 'selected-course-id';
|
||||
|
||||
const preferenceData = {
|
||||
apps: [{ id: 'discussion', enabled: true }],
|
||||
preferences: [{
|
||||
id: 'newPost',
|
||||
appId: 'discussion',
|
||||
web: false,
|
||||
push: false,
|
||||
mobile: false,
|
||||
}],
|
||||
nonEditable: {},
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
state = reducer();
|
||||
});
|
||||
|
||||
it('updates course list when api call is successful', () => {
|
||||
const data = {
|
||||
pagination: {
|
||||
count: 1,
|
||||
currentPage: 1,
|
||||
hasMore: false,
|
||||
totalPages: 1,
|
||||
},
|
||||
courseList: [
|
||||
{ id: selectedCourseId, name: 'Selected Course' },
|
||||
],
|
||||
};
|
||||
const result = reducer(
|
||||
state,
|
||||
{ type: Actions.FETCHED_COURSE_LIST, payload: data },
|
||||
);
|
||||
expect(result.courses).toEqual({
|
||||
status: SUCCESS_STATUS,
|
||||
courses: data.courseList,
|
||||
pagination: data.pagination,
|
||||
});
|
||||
});
|
||||
|
||||
test.each([
|
||||
{ action: Actions.FETCHING_COURSE_LIST, status: LOADING_STATUS },
|
||||
{ action: Actions.FAILED_COURSE_LIST, status: FAILURE_STATUS },
|
||||
])('course list is empty when api call is %s', ({ action, status }) => {
|
||||
const result = reducer(
|
||||
state,
|
||||
{ type: action },
|
||||
);
|
||||
expect(result.courses).toEqual({
|
||||
status,
|
||||
courses: [],
|
||||
pagination: {},
|
||||
});
|
||||
});
|
||||
|
||||
it('updates selected course id', () => {
|
||||
const result = reducer(
|
||||
state,
|
||||
{ type: Actions.UPDATE_SELECTED_COURSE, courseId: selectedCourseId },
|
||||
);
|
||||
expect(result.preferences.selectedCourse).toEqual(selectedCourseId);
|
||||
});
|
||||
|
||||
it('updates preferences when api call is successful', () => {
|
||||
const result = reducer(
|
||||
state,
|
||||
{ type: Actions.FETCHED_PREFERENCES, payload: preferenceData },
|
||||
);
|
||||
expect(result.preferences).toEqual({
|
||||
status: SUCCESS_STATUS,
|
||||
selectedCourse: null,
|
||||
...preferenceData,
|
||||
});
|
||||
});
|
||||
|
||||
test.each([
|
||||
{ action: Actions.FETCHING_PREFERENCES, status: LOADING_STATUS },
|
||||
{ action: Actions.FAILED_PREFERENCES, status: FAILURE_STATUS },
|
||||
])('preferences are empty when api call is %s', ({ action, status }) => {
|
||||
const result = reducer(
|
||||
state,
|
||||
{ type: action },
|
||||
);
|
||||
expect(result.preferences).toEqual({
|
||||
status,
|
||||
selectedCourse: null,
|
||||
preferences: [],
|
||||
apps: [],
|
||||
nonEditable: {},
|
||||
});
|
||||
});
|
||||
|
||||
it('app preference changes when action is dispatched', () => {
|
||||
state = reducer(
|
||||
state,
|
||||
{ type: Actions.FETCHED_PREFERENCES, payload: preferenceData },
|
||||
);
|
||||
const result = reducer(
|
||||
state,
|
||||
{
|
||||
type: Actions.UPDATE_APP_PREFERENCE,
|
||||
appId: 'discussion',
|
||||
value: false,
|
||||
},
|
||||
);
|
||||
expect(result.preferences.apps[0].enabled).toBeFalsy();
|
||||
});
|
||||
|
||||
it('preference changes when action is dispatched', () => {
|
||||
state = reducer(
|
||||
state,
|
||||
{ type: Actions.FETCHED_PREFERENCES, payload: preferenceData },
|
||||
);
|
||||
const result = reducer(
|
||||
state,
|
||||
{
|
||||
type: Actions.UPDATE_PREFERENCE,
|
||||
appId: 'discussion',
|
||||
preferenceName: 'newPost',
|
||||
notificationChannel: 'web',
|
||||
value: true,
|
||||
},
|
||||
);
|
||||
expect(result.preferences.preferences[0].web).toBeTruthy();
|
||||
});
|
||||
});
|
||||
63
src/notification-preferences/data/selectors.js
Normal file
63
src/notification-preferences/data/selectors.js
Normal file
@@ -0,0 +1,63 @@
|
||||
export const selectNotificationPreferencesStatus = () => state => (
|
||||
state.notificationPreferences.preferences.status
|
||||
);
|
||||
|
||||
export const selectPreferences = () => state => (
|
||||
state.notificationPreferences.preferences?.preferences
|
||||
);
|
||||
|
||||
export const selectCourseListStatus = () => state => (
|
||||
state.notificationPreferences.courses.status
|
||||
);
|
||||
|
||||
export const selectCourseList = () => state => (
|
||||
state.notificationPreferences.courses.courses
|
||||
);
|
||||
|
||||
export const selectCourse = courseId => state => (
|
||||
selectCourseList()(state).find(
|
||||
course => course.id === courseId,
|
||||
)
|
||||
);
|
||||
|
||||
export const selectPreferenceAppsId = () => state => (
|
||||
state.notificationPreferences.preferences.apps.map(app => app.id)
|
||||
);
|
||||
|
||||
export const selectPreferencesOfApp = appId => state => (
|
||||
selectPreferences()(state).filter(preference => (
|
||||
preference.appId === appId
|
||||
))
|
||||
);
|
||||
|
||||
export const selectPreferenceApp = appId => state => (
|
||||
state.notificationPreferences.preferences.apps.find(app => (
|
||||
app.id === appId
|
||||
))
|
||||
);
|
||||
|
||||
export const selectPreferenceAppToggleValue = appId => state => (
|
||||
selectPreferenceApp(appId)(state).enabled
|
||||
);
|
||||
|
||||
export const selectPreference = (appId, name) => state => (
|
||||
selectPreferences()(state).find((preference) => (
|
||||
preference.id === name && preference.appId === appId
|
||||
))
|
||||
);
|
||||
|
||||
export const selectPreferenceNonEditableChannels = (appId, name) => state => (
|
||||
state?.notificationPreferences.preferences.nonEditable[appId]?.[name] || []
|
||||
);
|
||||
|
||||
export const selectSelectedCourseId = () => state => (
|
||||
state.notificationPreferences.preferences.selectedCourse
|
||||
);
|
||||
|
||||
export const selectPagination = () => state => (
|
||||
state.notificationPreferences.courses.pagination
|
||||
);
|
||||
|
||||
export const selectShowPreferences = () => state => (
|
||||
state.notificationPreferences.showPreferences
|
||||
);
|
||||
44
src/notification-preferences/data/service.js
Normal file
44
src/notification-preferences/data/service.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import { getConfig, snakeCaseObject } from '@edx/frontend-platform';
|
||||
import { getAuthenticatedHttpClient } from '@edx/frontend-platform/auth';
|
||||
import snakeCase from 'lodash.snakecase';
|
||||
|
||||
export const getCourseNotificationPreferences = async (courseId) => {
|
||||
const url = `${getConfig().LMS_BASE_URL}/api/notifications/configurations/${courseId}`;
|
||||
const { data } = await getAuthenticatedHttpClient().get(url);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getCourseList = async (page, pageSize) => {
|
||||
const params = snakeCaseObject({ page, pageSize });
|
||||
const url = `${getConfig().LMS_BASE_URL}/api/notifications/enrollments/`;
|
||||
const { data } = await getAuthenticatedHttpClient().get(url, { params });
|
||||
return data;
|
||||
};
|
||||
|
||||
export const patchAppPreferenceToggle = async (courseId, appId, value) => {
|
||||
const patchData = snakeCaseObject({
|
||||
notificationApp: appId,
|
||||
value,
|
||||
});
|
||||
const url = `${getConfig().LMS_BASE_URL}/api/notifications/configurations/${courseId}`;
|
||||
const { data } = await getAuthenticatedHttpClient().patch(url, patchData);
|
||||
return data;
|
||||
};
|
||||
|
||||
export const patchPreferenceToggle = async (
|
||||
courseId,
|
||||
notificationApp,
|
||||
notificationType,
|
||||
notificationChannel,
|
||||
value,
|
||||
) => {
|
||||
const patchData = snakeCaseObject({
|
||||
notificationApp,
|
||||
notificationType: snakeCase(notificationType),
|
||||
notificationChannel,
|
||||
value,
|
||||
});
|
||||
const url = `${getConfig().LMS_BASE_URL}/api/notifications/configurations/${courseId}`;
|
||||
const { data } = await getAuthenticatedHttpClient().patch(url, patchData);
|
||||
return data;
|
||||
};
|
||||
150
src/notification-preferences/data/thunks.js
Normal file
150
src/notification-preferences/data/thunks.js
Normal file
@@ -0,0 +1,150 @@
|
||||
import { camelCaseObject } from '@edx/frontend-platform';
|
||||
import {
|
||||
fetchCourseListSuccess,
|
||||
fetchCourseListFetching,
|
||||
fetchCourseListFailed,
|
||||
fetchNotificationPreferenceFailed,
|
||||
fetchNotificationPreferenceFetching,
|
||||
fetchNotificationPreferenceSuccess,
|
||||
updateAppToggle,
|
||||
updatePreferenceValue,
|
||||
updateSelectedCourse,
|
||||
} from './actions';
|
||||
import {
|
||||
getCourseList,
|
||||
getCourseNotificationPreferences,
|
||||
patchAppPreferenceToggle,
|
||||
patchPreferenceToggle,
|
||||
} from './service';
|
||||
|
||||
const normalizeCourses = (responseData) => {
|
||||
const courseList = responseData.results?.map((enrollment) => ({
|
||||
id: enrollment.course.id,
|
||||
name: enrollment.course.displayName,
|
||||
})) || [];
|
||||
|
||||
const pagination = {
|
||||
count: responseData.count,
|
||||
currentPage: responseData.currentPage,
|
||||
hasMore: Boolean(responseData.next),
|
||||
totalPages: responseData.numPages,
|
||||
};
|
||||
|
||||
return {
|
||||
courseList,
|
||||
pagination,
|
||||
showPreferences: responseData.showPreferences,
|
||||
};
|
||||
};
|
||||
|
||||
const normalizePreferences = (responseData) => {
|
||||
const preferences = responseData.notificationPreferenceConfig;
|
||||
|
||||
const appKeys = Object.keys(preferences);
|
||||
const apps = appKeys.map((appId) => ({
|
||||
id: appId,
|
||||
enabled: preferences[appId].enabled,
|
||||
}));
|
||||
|
||||
const nonEditable = {};
|
||||
const preferenceList = appKeys.map(appId => {
|
||||
const preferencesKeys = Object.keys(preferences[appId].notificationTypes);
|
||||
const flatPreferences = preferencesKeys.map(preferenceId => (
|
||||
{
|
||||
id: preferenceId,
|
||||
appId,
|
||||
web: preferences[appId].notificationTypes[preferenceId].web,
|
||||
push: preferences[appId].notificationTypes[preferenceId].push,
|
||||
email: preferences[appId].notificationTypes[preferenceId].email,
|
||||
info: preferences[appId].notificationTypes[preferenceId].info || '',
|
||||
}
|
||||
));
|
||||
nonEditable[appId] = preferences[appId].nonEditable;
|
||||
|
||||
return flatPreferences;
|
||||
}).flat();
|
||||
|
||||
const normalizedPreferences = {
|
||||
apps,
|
||||
preferences: preferenceList,
|
||||
nonEditable,
|
||||
};
|
||||
return normalizedPreferences;
|
||||
};
|
||||
|
||||
export const fetchCourseList = (page, pageSize) => (
|
||||
async (dispatch) => {
|
||||
try {
|
||||
dispatch(fetchCourseListFetching());
|
||||
const data = await getCourseList(page, pageSize);
|
||||
const normalizedData = normalizeCourses(camelCaseObject(data));
|
||||
dispatch(fetchCourseListSuccess(normalizedData));
|
||||
} catch (errors) {
|
||||
dispatch(fetchCourseListFailed());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
export const fetchCourseNotificationPreferences = (courseId) => (
|
||||
async (dispatch) => {
|
||||
try {
|
||||
dispatch(updateSelectedCourse(courseId));
|
||||
dispatch(fetchNotificationPreferenceFetching());
|
||||
const data = await getCourseNotificationPreferences(courseId);
|
||||
const normalizedData = normalizePreferences(camelCaseObject(data));
|
||||
dispatch(fetchNotificationPreferenceSuccess(courseId, normalizedData));
|
||||
} catch (errors) {
|
||||
dispatch(fetchNotificationPreferenceFailed());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
export const updateAppPreferenceToggle = (courseId, appId, value) => (
|
||||
async (dispatch) => {
|
||||
try {
|
||||
dispatch(updateAppToggle(courseId, appId, value));
|
||||
const data = await patchAppPreferenceToggle(courseId, appId, value);
|
||||
const normalizedData = normalizePreferences(camelCaseObject(data));
|
||||
dispatch(fetchNotificationPreferenceSuccess(courseId, normalizedData));
|
||||
} catch (errors) {
|
||||
dispatch(updateAppToggle(courseId, appId, !value));
|
||||
dispatch(fetchNotificationPreferenceFailed());
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
export const updatePreferenceToggle = (
|
||||
courseId,
|
||||
notificationApp,
|
||||
notificationType,
|
||||
notificationChannel,
|
||||
value,
|
||||
) => (
|
||||
async (dispatch) => {
|
||||
try {
|
||||
dispatch(updatePreferenceValue(
|
||||
notificationApp,
|
||||
notificationType,
|
||||
notificationChannel,
|
||||
value,
|
||||
));
|
||||
const data = await patchPreferenceToggle(
|
||||
courseId,
|
||||
notificationApp,
|
||||
notificationType,
|
||||
notificationChannel,
|
||||
value,
|
||||
);
|
||||
const normalizedData = normalizePreferences(camelCaseObject(data));
|
||||
dispatch(fetchNotificationPreferenceSuccess(courseId, normalizedData));
|
||||
} catch (errors) {
|
||||
dispatch(updatePreferenceValue(
|
||||
notificationApp,
|
||||
notificationType,
|
||||
notificationChannel,
|
||||
!value,
|
||||
));
|
||||
dispatch(fetchNotificationPreferenceFailed());
|
||||
}
|
||||
}
|
||||
);
|
||||
61
src/notification-preferences/messages.js
Normal file
61
src/notification-preferences/messages.js
Normal file
@@ -0,0 +1,61 @@
|
||||
import { defineMessages } from '@edx/frontend-platform/i18n';
|
||||
|
||||
// eslint-disable-next-line import/prefer-default-export
|
||||
export const messages = defineMessages({
|
||||
notificationHeading: {
|
||||
id: 'notification.preference.heading',
|
||||
defaultMessage: 'Notifications',
|
||||
description: 'Notification title',
|
||||
},
|
||||
notificationAppTitle: {
|
||||
id: 'notification.preference.app.title',
|
||||
defaultMessage: `{
|
||||
key, select,
|
||||
discussion {Discussions}
|
||||
coursework {Course Work}
|
||||
other {{key}}
|
||||
}`,
|
||||
description: 'Display text for Notification Types',
|
||||
},
|
||||
notificationTitle: {
|
||||
id: 'notification.preference.title',
|
||||
defaultMessage: `{
|
||||
text, select,
|
||||
core {Core}
|
||||
newPost {New Post}
|
||||
newComment {New Comment}
|
||||
newResponse {New Response}
|
||||
newCommentOnPost {New Comment On Post}
|
||||
newResponseOnComment {New Response On Comment}
|
||||
newAssignment {New Assignment}
|
||||
newGrade {New Grade}
|
||||
other {{text}}
|
||||
}`,
|
||||
description: 'Display text for Notification Types',
|
||||
},
|
||||
notificationHelpType: {
|
||||
id: 'notification.preference.help.type',
|
||||
defaultMessage: 'Type',
|
||||
description: 'Display text for type',
|
||||
},
|
||||
notificationHelpWeb: {
|
||||
id: 'notification.preference.help.web',
|
||||
defaultMessage: 'Web',
|
||||
description: 'Display text for web',
|
||||
},
|
||||
notificationHelpEmail: {
|
||||
id: 'notification.preference.help.email',
|
||||
defaultMessage: 'Email',
|
||||
description: 'Display text for email',
|
||||
},
|
||||
notificationHelpPush: {
|
||||
id: 'notification.preference.help.push',
|
||||
defaultMessage: 'Push',
|
||||
description: 'Display text for push',
|
||||
},
|
||||
loadMoreCourses: {
|
||||
id: 'notification.preference.load.more.courses',
|
||||
defaultMessage: 'Load more courses',
|
||||
description: 'Load more button to load more courses',
|
||||
},
|
||||
});
|
||||
@@ -3,6 +3,6 @@ import 'regenerator-runtime/runtime';
|
||||
import '@testing-library/jest-dom';
|
||||
|
||||
import Enzyme from 'enzyme';
|
||||
import Adapter from 'enzyme-adapter-react-16';
|
||||
import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
|
||||
|
||||
Enzyme.configure({ adapter: new Adapter() });
|
||||
|
||||
Reference in New Issue
Block a user